Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I4b1a75f774b599659cec5a866f74d4406ae3fd5b
diff --git a/AndroidGen.mk b/AndroidGen.mk
index 4be2f0b..ff1e09d 100644
--- a/AndroidGen.mk
+++ b/AndroidGen.mk
@@ -159,6 +159,7 @@
 	external/vulkancts/modules/vulkan/geometry/vktGeometryVaryingGeometryShaderTests.cpp \
 	external/vulkancts/modules/vulkan/image/vktImageAstcDecodeModeTests.cpp \
 	external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp \
+	external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.cpp \
 	external/vulkancts/modules/vulkan/image/vktImageCompressionTranscodingSupport.cpp \
 	external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.cpp \
 	external/vulkancts/modules/vulkan/image/vktImageLoadStoreUtil.cpp \
@@ -251,6 +252,7 @@
 	external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWorkgroupStorageTests.cpp \
 	external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp \
 	external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemYCbCrConversionTests.cpp \
+	external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.cpp \
 	external/vulkancts/modules/vulkan/query_pool/vktQueryPoolOcclusionTests.cpp \
 	external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp \
 	external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp \
@@ -258,6 +260,7 @@
 	external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp \
 	external/vulkancts/modules/vulkan/renderpass/vktRenderPassDepthStencilResolveTests.cpp \
 	external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp \
+	external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp \
 	external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleResolveTests.cpp \
 	external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleTests.cpp \
 	external/vulkancts/modules/vulkan/renderpass/vktRenderPassSampleReadTests.cpp \
@@ -288,6 +291,7 @@
 	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp \
 	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDiscardTests.cpp \
 	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp \
+	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.cpp \
 	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderLimitTests.cpp \
 	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderLoopTests.cpp \
 	external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderMatrixTests.cpp \
@@ -359,8 +363,10 @@
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsClusteredTests.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsPartitionedTests.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsQuadTests.cpp \
+	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShapeTests.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShuffleTests.cpp \
+	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp \
 	external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp \
@@ -401,6 +407,7 @@
 	external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureMipmapTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureShadowTests.cpp \
+	external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureSwizzleTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp \
diff --git a/android/cts/master/gles31-master.txt b/android/cts/master/gles31-master.txt
index f7a6300..414235b 100644
--- a/android/cts/master/gles31-master.txt
+++ b/android/cts/master/gles31-master.txt
@@ -19907,6 +19907,9 @@
 dEQP-GLES31.functional.fbo.color.texcubearray.r32f
 dEQP-GLES31.functional.fbo.color.texcubearray.r16f
 dEQP-GLES31.functional.fbo.color.texcubearray.rgb16f
+dEQP-GLES31.functional.fbo.color.tex2d.r16
+dEQP-GLES31.functional.fbo.color.tex2d.rg16
+dEQP-GLES31.functional.fbo.color.tex2d.rgba16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x64
 dEQP-GLES31.functional.fbo.no_attachments.size.16x256
diff --git a/android/cts/master/src/vk-master-2019-03-01.txt b/android/cts/master/src/vk-master-2019-03-01.txt
index dfe9bb2..35b9668 100644
--- a/android/cts/master/src/vk-master-2019-03-01.txt
+++ b/android/cts/master/src/vk-master-2019-03-01.txt
@@ -358536,46 +358536,6 @@
 dEQP-VK.geometry.basic.primitive_id_in
 dEQP-VK.geometry.basic.primitive_id_in_restarted
 dEQP-VK.geometry.basic.primitive_id
-dEQP-VK.geometry.layered.1d_array.render_to_default_layer
-dEQP-VK.geometry.layered.1d_array.render_to_one
-dEQP-VK.geometry.layered.1d_array.render_to_all
-dEQP-VK.geometry.layered.1d_array.render_different_content
-dEQP-VK.geometry.layered.1d_array.fragment_layer
-dEQP-VK.geometry.layered.1d_array.invocation_per_layer
-dEQP-VK.geometry.layered.1d_array.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.1d_array.readback
-dEQP-VK.geometry.layered.2d_array.render_to_default_layer
-dEQP-VK.geometry.layered.2d_array.render_to_one
-dEQP-VK.geometry.layered.2d_array.render_to_all
-dEQP-VK.geometry.layered.2d_array.render_different_content
-dEQP-VK.geometry.layered.2d_array.fragment_layer
-dEQP-VK.geometry.layered.2d_array.invocation_per_layer
-dEQP-VK.geometry.layered.2d_array.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.2d_array.readback
-dEQP-VK.geometry.layered.cube.render_to_default_layer
-dEQP-VK.geometry.layered.cube.render_to_one
-dEQP-VK.geometry.layered.cube.render_to_all
-dEQP-VK.geometry.layered.cube.render_different_content
-dEQP-VK.geometry.layered.cube.fragment_layer
-dEQP-VK.geometry.layered.cube.invocation_per_layer
-dEQP-VK.geometry.layered.cube.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.cube.readback
-dEQP-VK.geometry.layered.cube_array.render_to_default_layer
-dEQP-VK.geometry.layered.cube_array.render_to_one
-dEQP-VK.geometry.layered.cube_array.render_to_all
-dEQP-VK.geometry.layered.cube_array.render_different_content
-dEQP-VK.geometry.layered.cube_array.fragment_layer
-dEQP-VK.geometry.layered.cube_array.invocation_per_layer
-dEQP-VK.geometry.layered.cube_array.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.cube_array.readback
-dEQP-VK.geometry.layered.3d.render_to_default_layer
-dEQP-VK.geometry.layered.3d.render_to_one
-dEQP-VK.geometry.layered.3d.render_to_all
-dEQP-VK.geometry.layered.3d.render_different_content
-dEQP-VK.geometry.layered.3d.fragment_layer
-dEQP-VK.geometry.layered.3d.invocation_per_layer
-dEQP-VK.geometry.layered.3d.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.3d.readback
 dEQP-VK.geometry.instanced.draw_1_instances_1_geometry_invocations
 dEQP-VK.geometry.instanced.draw_1_instances_2_geometry_invocations
 dEQP-VK.geometry.instanced.draw_1_instances_8_geometry_invocations
diff --git a/android/cts/master/vk-master-2019-03-01.txt b/android/cts/master/vk-master-2019-03-01.txt
index 9cd83e8..13f24a9 100644
--- a/android/cts/master/vk-master-2019-03-01.txt
+++ b/android/cts/master/vk-master-2019-03-01.txt
@@ -358536,46 +358536,6 @@
 dEQP-VK.geometry.basic.primitive_id_in
 dEQP-VK.geometry.basic.primitive_id_in_restarted
 dEQP-VK.geometry.basic.primitive_id
-dEQP-VK.geometry.layered.1d_array.render_to_default_layer
-dEQP-VK.geometry.layered.1d_array.render_to_one
-dEQP-VK.geometry.layered.1d_array.render_to_all
-dEQP-VK.geometry.layered.1d_array.render_different_content
-dEQP-VK.geometry.layered.1d_array.fragment_layer
-dEQP-VK.geometry.layered.1d_array.invocation_per_layer
-dEQP-VK.geometry.layered.1d_array.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.1d_array.readback
-dEQP-VK.geometry.layered.2d_array.render_to_default_layer
-dEQP-VK.geometry.layered.2d_array.render_to_one
-dEQP-VK.geometry.layered.2d_array.render_to_all
-dEQP-VK.geometry.layered.2d_array.render_different_content
-dEQP-VK.geometry.layered.2d_array.fragment_layer
-dEQP-VK.geometry.layered.2d_array.invocation_per_layer
-dEQP-VK.geometry.layered.2d_array.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.2d_array.readback
-dEQP-VK.geometry.layered.cube.render_to_default_layer
-dEQP-VK.geometry.layered.cube.render_to_one
-dEQP-VK.geometry.layered.cube.render_to_all
-dEQP-VK.geometry.layered.cube.render_different_content
-dEQP-VK.geometry.layered.cube.fragment_layer
-dEQP-VK.geometry.layered.cube.invocation_per_layer
-dEQP-VK.geometry.layered.cube.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.cube.readback
-dEQP-VK.geometry.layered.cube_array.render_to_default_layer
-dEQP-VK.geometry.layered.cube_array.render_to_one
-dEQP-VK.geometry.layered.cube_array.render_to_all
-dEQP-VK.geometry.layered.cube_array.render_different_content
-dEQP-VK.geometry.layered.cube_array.fragment_layer
-dEQP-VK.geometry.layered.cube_array.invocation_per_layer
-dEQP-VK.geometry.layered.cube_array.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.cube_array.readback
-dEQP-VK.geometry.layered.3d.render_to_default_layer
-dEQP-VK.geometry.layered.3d.render_to_one
-dEQP-VK.geometry.layered.3d.render_to_all
-dEQP-VK.geometry.layered.3d.render_different_content
-dEQP-VK.geometry.layered.3d.fragment_layer
-dEQP-VK.geometry.layered.3d.invocation_per_layer
-dEQP-VK.geometry.layered.3d.multiple_layers_per_invocation
-dEQP-VK.geometry.layered.3d.readback
 dEQP-VK.geometry.instanced.draw_1_instances_1_geometry_invocations
 dEQP-VK.geometry.instanced.draw_1_instances_2_geometry_invocations
 dEQP-VK.geometry.instanced.draw_1_instances_8_geometry_invocations
diff --git a/android/cts/master/vk-master-2020-03-01.txt b/android/cts/master/vk-master-2020-03-01.txt
index 9010059..2198d62 100644
--- a/android/cts/master/vk-master-2020-03-01.txt
+++ b/android/cts/master/vk-master-2020-03-01.txt
@@ -26,6 +26,7 @@
 dEQP-VK.api.info.vulkan1p2_limits_validation.ext_line_rasterization
 dEQP-VK.api.device_init.create_instance_extension_name_abuse
 dEQP-VK.api.device_init.create_instance_layer_name_abuse
+dEQP-VK.api.buffer.basic.size_max_uint64
 dEQP-VK.api.buffer_marker.graphics.external_host_mem.top_of_pipe.sequential.4
 dEQP-VK.api.buffer_marker.graphics.external_host_mem.top_of_pipe.sequential.64
 dEQP-VK.api.buffer_marker.graphics.external_host_mem.top_of_pipe.sequential.65536
@@ -1855,26 +1856,47 @@
 dEQP-VK.api.copy_and_blit.core.image_to_image.dimensions.src6x32768_dst6x32768.r32g32b32a32_uint.r32g32b32a32_uint.general_optimal
 dEQP-VK.api.copy_and_blit.core.image_to_image.dimensions.src6x32768_dst6x32768.r32g32b32a32_uint.r32g32b32a32_uint.general_general
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.x8_d24_unorm_pack32_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_x8_d24_unorm_pack32_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_s8_uint_DS
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_s8_uint_D_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_s8_uint_S_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_s8_uint_SD
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_s8_uint_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_s8_uint_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_DS
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_D_S
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_S_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_SD
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_S
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d24_unorm_s8_uint_DS
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d24_unorm_s8_uint_D_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d24_unorm_s8_uint_S_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d24_unorm_s8_uint_SD
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d24_unorm_s8_uint_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d24_unorm_s8_uint_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_DS
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_D_S
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_S_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_SD
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_S
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_s8_uint_DS
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_s8_uint_D_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_s8_uint_S_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_s8_uint_SD
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_s8_uint_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d32_sfloat_s8_uint_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_DS
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_D_S
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_S_D
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_SD
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_S
+dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_D
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_optimal_nearest
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.general_optimal_nearest
@@ -3292,26 +3314,47 @@
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.dimensions.src6x32768_dst6x32768.r16g16b16_sfloat.r16g16b16_sfloat.general_optimal
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.dimensions.src6x32768_dst6x32768.r16g16b16_sfloat.r16g16b16_sfloat.general_general
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.x8_d24_unorm_pack32_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_x8_d24_unorm_pack32_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_s8_uint_DS
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_s8_uint_D_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_s8_uint_S_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_s8_uint_SD
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_s8_uint_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_s8_uint_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_DS
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_D_S
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_S_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_SD
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_S
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_s8_uint_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d24_unorm_s8_uint_DS
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d24_unorm_s8_uint_D_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d24_unorm_s8_uint_S_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d24_unorm_s8_uint_SD
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d24_unorm_s8_uint_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d24_unorm_s8_uint_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_DS
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_D_S
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_S_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_SD
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_S
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_s8_uint_DS
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_s8_uint_D_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_s8_uint_S_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_s8_uint_SD
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_s8_uint_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d32_sfloat_s8_uint_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_DS
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_D_S
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_S_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_SD
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_S
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_optimal_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.general_optimal_nearest
@@ -3380,672 +3423,1671 @@
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.general_optimal_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.general_general_nearest
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_71x1_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_71x1_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers_twostep.r4g4_unorm_pack8_200x1
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers_twostep.r4g4b4a4_unorm_pack16_200x1
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers_twostep.b4g4r4a4_unorm_pack16_200x1
@@ -5156,1338 +6198,3003 @@
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.linear.remaining_array_layers_twostep.r32g32b32a32_sfloat_71x1
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.linear.remaining_array_layers_twostep.b10g11r11_ufloat_pack32_71x1
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.linear.remaining_array_layers_twostep.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_33x128_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_33x128_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers_twostep.r4g4_unorm_pack8_200x180
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers_twostep.r4g4b4a4_unorm_pack16_200x180
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.remaining_array_layers_twostep.b4g4r4a4_unorm_pack16_200x180
@@ -8708,339 +11415,783 @@
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.linear.remaining_array_layers_twostep.r32g32b32a32_sfloat_33x128
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.linear.remaining_array_layers_twostep.b10g11r11_ufloat_pack32_33x128
 dEQP-VK.api.image_clearing.core.clear_color_image.2d.linear.remaining_array_layers_twostep.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180x16
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_55x21x11
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.linear.single_layer.r4g4_unorm_pack8_200x180x16
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.linear.single_layer.r4g4b4a4_unorm_pack16_200x180x16
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.linear.single_layer.b4g4r4a4_unorm_pack16_200x180x16
@@ -9374,10 +12525,13 @@
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.linear.single_layer.r32g32b32a32_sfloat_32x29x3
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.linear.single_layer.b10g11r11_ufloat_pack32_32x29x3
 dEQP-VK.api.image_clearing.core.clear_color_image.3d.linear.single_layer.e5b9g9r9_ufloat_pack32_32x29x3
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_200x180
@@ -9385,12 +12539,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.s8_uint_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_1x33
@@ -9398,12 +12555,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.s8_uint_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_64x11
@@ -9411,12 +12571,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.s8_uint_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_33x128
@@ -9424,18 +12587,24 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.s8_uint_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_200x180
@@ -9443,12 +12612,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.s8_uint_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_1x33
@@ -9456,12 +12628,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.s8_uint_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_64x11
@@ -9469,12 +12644,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.s8_uint_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_33x128
@@ -9482,18 +12660,24 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.s8_uint_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_200x180
@@ -9501,12 +12685,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.s8_uint_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_200x180
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_1x33
@@ -9514,12 +12701,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.s8_uint_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_1x33
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_64x11
@@ -9527,12 +12717,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.s8_uint_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_64x11
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_33x128
@@ -9540,12 +12733,15 @@
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.s8_uint_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_33x128
+dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers_twostep.d16_unorm_s8_uint_separate_layouts_depth
@@ -11614,672 +14810,1671 @@
 dEQP-VK.api.image_clearing.core.partial_clear_depth_stencil_attachment.cube_layers.d32_sfloat_s8_uint
 dEQP-VK.api.image_clearing.core.partial_clear_depth_stencil_attachment.cube_layers.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.core.partial_clear_depth_stencil_attachment.cube_layers.d32_sfloat_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g6b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g6r5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r5g5b5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b5g5r5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a1r5g5b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r8g8b8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b8g8r8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a8b8g8r8_srgb_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2r10g10b10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.a2b10g10r10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r16g16b16a16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.r32g32b32a32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.b10g11r11_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.single_layer.e5b9g9r9_ufloat_pack32_71x1_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4_unorm_pack8_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g6b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g6r5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r8g8b8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b8g8r8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2r10g10b10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.a2b10g10r10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r16g16b16a16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.r32g32b32a32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.b10g11r11_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_71x1_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4_unorm_pack8_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r8g8b8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b8g8r8a8_srgb_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_unorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_snorm_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sscaled_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r16g16b16a16_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_uint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sint_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.r32g32b32a32_sfloat_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_71x1_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers_twostep.r4g4_unorm_pack8_200x1
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers_twostep.r4g4b4a4_unorm_pack16_200x1
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.optimal.remaining_array_layers_twostep.b4g4r4a4_unorm_pack16_200x1
@@ -13390,1338 +17585,3003 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.linear.remaining_array_layers_twostep.r32g32b32a32_sfloat_71x1
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.linear.remaining_array_layers_twostep.b10g11r11_ufloat_pack32_71x1
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.1d.linear.remaining_array_layers_twostep.e5b9g9r9_ufloat_pack32_71x1
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4_unorm_pack8_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r4g4b4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b4g4r4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g6b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g6r5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r5g5b5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b5g5r5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a1r5g5b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r8g8b8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b8g8r8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a8b8g8r8_srgb_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2r10g10b10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.a2b10g10r10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r16g16b16a16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.r32g32b32a32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.b10g11r11_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_33x128_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4_unorm_pack8_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r4g4b4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b4g4r4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g6b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g6r5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r5g5b5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b5g5r5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a1r5g5b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r8g8b8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b8g8r8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a8b8g8r8_srgb_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2r10g10b10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.a2b10g10r10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r16g16b16a16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.r32g32b32a32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.b10g11r11_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.multiple_layers.e5b9g9r9_ufloat_pack32_33x128_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4_unorm_pack8_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r4g4b4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b4g4r4a4_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g6b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g6r5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r5g5b5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b5g5r5a1_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a1r5g5b5_unorm_pack16_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r8g8b8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b8g8r8a8_srgb_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a8b8g8r8_srgb_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2r10g10b10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_unorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_snorm_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sscaled_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_uint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.a2b10g10r10_sint_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_unorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_snorm_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sscaled_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r16g16b16a16_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.r32g32b32a32_sfloat_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.b10g11r11_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers.e5b9g9r9_ufloat_pack32_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers_twostep.r4g4_unorm_pack8_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers_twostep.r4g4b4a4_unorm_pack16_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.optimal.remaining_array_layers_twostep.b4g4r4a4_unorm_pack16_200x180
@@ -16942,339 +22802,783 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.linear.remaining_array_layers_twostep.r32g32b32a32_sfloat_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.linear.remaining_array_layers_twostep.b10g11r11_ufloat_pack32_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.linear.remaining_array_layers_twostep.e5b9g9r9_ufloat_pack32_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_multiple_subresourcerange
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180x16
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_200x180x16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_55x21x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_55x21x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4_unorm_pack8_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r4g4b4a4_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b4g4r4a4_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g6b5_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g6r5_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r5g5b5a1_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b5g5r5a1_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a1r5g5b5_unorm_pack16_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r8g8b8a8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b8g8r8a8_srgb_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_unorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_snorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_uint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_sint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a8b8g8r8_srgb_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_unorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_snorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_uint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2r10g10b10_sint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_unorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_snorm_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sscaled_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_uint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.a2b10g10r10_sint_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_unorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_snorm_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sscaled_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r16g16b16a16_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_uint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sint_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.r32g32b32a32_sfloat_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.b10g11r11_ufloat_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.optimal.single_layer.e5b9g9r9_ufloat_pack32_32x29x3_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.linear.single_layer.r4g4_unorm_pack8_200x180x16
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.linear.single_layer.r4g4b4a4_unorm_pack16_200x180x16
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.linear.single_layer.b4g4r4a4_unorm_pack16_200x180x16
@@ -17608,10 +23912,13 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.linear.single_layer.r32g32b32a32_sfloat_32x29x3
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.linear.single_layer.b10g11r11_ufloat_pack32_32x29x3
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.3d.linear.single_layer.e5b9g9r9_ufloat_pack32_32x29x3
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_200x180
@@ -17619,12 +23926,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.s8_uint_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_1x33
@@ -17632,12 +23942,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.s8_uint_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_64x11
@@ -17645,12 +23958,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.s8_uint_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_33x128
@@ -17658,18 +23974,24 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.s8_uint_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d16_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.single_layer.d32_sfloat_s8_uint_separate_layouts_stencil_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_200x180
@@ -17677,12 +23999,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.s8_uint_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_1x33
@@ -17690,12 +24015,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.s8_uint_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_64x11
@@ -17703,12 +24031,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.s8_uint_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_33x128
@@ -17716,18 +24047,24 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.s8_uint_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d16_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d24_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.multiple_layers.d32_sfloat_s8_uint_separate_layouts_stencil_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_200x180
@@ -17735,12 +24072,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.s8_uint_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_200x180
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_200x180_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_200x180
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_1x33
@@ -17748,12 +24088,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.s8_uint_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_1x33
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_1x33_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_1x33
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_64x11
@@ -17761,12 +24104,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.s8_uint_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_64x11
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_64x11_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_64x11
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_33x128
@@ -17774,12 +24120,15 @@
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.s8_uint_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d16_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d24_unorm_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_33x128
+dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_33x128_multiple_subresourcerange
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_depth_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers.d32_sfloat_s8_uint_separate_layouts_stencil_33x128
 dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_image.remaining_array_layers_twostep.d16_unorm_s8_uint_separate_layouts_depth
@@ -63570,6 +69919,1018 @@
 dEQP-VK.pipeline.image.suballocation.sampling_type.separate.view_type.cube_array.format.a1r5g5b5_unorm_pack16.count_4.size.13x13_array_of_36
 dEQP-VK.pipeline.image.suballocation.sampling_type.separate.view_type.cube_array.format.a1r5g5b5_unorm_pack16.count_8.size.32x32_array_of_36
 dEQP-VK.pipeline.image.suballocation.sampling_type.separate.view_type.cube_array.format.a1r5g5b5_unorm_pack16.count_8.size.13x13_array_of_36
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4_unorm_pack8.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.b8g8r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16a16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32g32b32a32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16b16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16g16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r16_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.r8g8b8a8_sscaled.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.1d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4_unorm_pack8.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r4g4b4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g6b5_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r5g5b5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2b10g10r10_unorm_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uint_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b10g11r11_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.e5b9g9r9_ufloat_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b4g4r4a4_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b5g5r5a1_unorm_pack16.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8a8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_srgb.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.b8g8r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16a16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32g32b32a32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16b16_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16g16_sint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r16_snorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.r8g8b8a8_sscaled.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.a2r10g10b10_uscaled_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a1_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.etc2_r8g8b8a8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11_snorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.eac_r11g11_snorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_4x4_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_5x4_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x5_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_6x6_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x6_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_8x8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x6_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_10x8_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x10_unorm_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.astc_12x12_srgb_block.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.x8_d24_unorm_pack32.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.normalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.unnormalized_coords
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d16_unorm_s8_uint.min_filter.linear
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d16_unorm_s8_uint.min_filter.nearest
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d16_unorm_s8_uint.min_reduce.comp_identity_zero_zero_zero.average
@@ -63783,6 +71144,30 @@
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_repeat_mode_mirror_clamp_to_edge
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_mirrored_repeat_mode_clamp_to_edge
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_mirror_clamp_to_edge_mode_mirrored_repeat
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d16_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d24_unorm_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.mag_filter.nearest
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_border_transparent_black
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_border_opaque_black
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.all_mode_clamp_to_border_opaque_white
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
+dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_array.format.d16_unorm_s8_uint.min_filter.linear
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_array.format.d16_unorm_s8_uint.min_filter.nearest
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d_array.format.d16_unorm_s8_uint.min_reduce.comp_identity_zero_zero_zero.average
@@ -64811,6 +72196,10 @@
 dEQP-VK.pipeline.multisample.shader_fragment_mask.samples_16.subpass_input.r8g8b8a8_unorm
 dEQP-VK.pipeline.multisample.shader_fragment_mask.samples_16.subpass_input.r32_uint
 dEQP-VK.pipeline.multisample.shader_fragment_mask.samples_16.subpass_input.r32_sint
+dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.2_samples
+dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.4_samples
+dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.8_samples
+dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.16_samples
 dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.point_list
 dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list
 dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip
@@ -70600,6 +77989,15 @@
 dEQP-VK.pipeline.blend_operation_advanced.independent.color_attachments_16_blend_overlap_uncorrelated_ext_3
 dEQP-VK.pipeline.blend_operation_advanced.coherent.barrier_color_attachments_1_blend_overlap_uncorrelated_ext_0
 dEQP-VK.pipeline.blend_operation_advanced.coherent.color_attachments_1_blend_overlap_uncorrelated_ext_1
+dEQP-VK.binding_model.descriptor_update.samplerless.sampled_img_sampler_zero
+dEQP-VK.binding_model.descriptor_update.samplerless.sampled_img_sampler_one
+dEQP-VK.binding_model.descriptor_update.samplerless.sampled_img_sampler_destroyed
+dEQP-VK.binding_model.descriptor_update.samplerless.storage_img_sampler_zero
+dEQP-VK.binding_model.descriptor_update.samplerless.storage_img_sampler_one
+dEQP-VK.binding_model.descriptor_update.samplerless.storage_img_sampler_destroyed
+dEQP-VK.binding_model.descriptor_update.samplerless.input_attachment_sampler_zero
+dEQP-VK.binding_model.descriptor_update.samplerless.input_attachment_sampler_one
+dEQP-VK.binding_model.descriptor_update.samplerless.input_attachment_sampler_destroyed
 dEQP-VK.binding_model.descriptorset_random.sets4.noarray.ubolimitlow.sbolimitlow.imglimitlow.noiub.frag.ialimitlow.0
 dEQP-VK.binding_model.descriptorset_random.sets4.noarray.ubolimitlow.sbolimitlow.imglimitlow.noiub.frag.ialimitlow.1
 dEQP-VK.binding_model.descriptorset_random.sets4.noarray.ubolimitlow.sbolimitlow.imglimitlow.noiub.frag.ialimitlow.2
@@ -78973,6 +86371,16 @@
 dEQP-VK.binding_model.buffer_device_address.set31.depth2.basessbo.crossconvertp2u.store.replay.std140.comp
 dEQP-VK.binding_model.buffer_device_address.set31.depth2.basessbo.crossconvertp2u.store.replay.std140.frag
 dEQP-VK.binding_model.buffer_device_address.set31.depth2.basessbo.crossconvertp2u.store.replay.std140.vert
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_0
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_1
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_2
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_3
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_4
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_5
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_6
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_7
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_8
+dEQP-VK.binding_model.buffer_device_address.capture_replay_stress.seed_9
 dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_4_compute
 dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_5_compute
 dEQP-VK.spirv_assembly.instruction.compute.non_semantic_info.basic
@@ -79002,6 +86410,27 @@
 dEQP-VK.spirv_assembly.instruction.compute.opatomic_storage_buffer_volatile.load
 dEQP-VK.spirv_assembly.instruction.compute.opatomic_storage_buffer_volatile.store
 dEQP-VK.spirv_assembly.instruction.compute.opatomic_storage_buffer_volatile.compex
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightlogical_i64
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightarithmetic_i64
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_i64
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightlogical_i16
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightarithmetic_i16
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_i16
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightlogical_i8
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightarithmetic_i8
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_i8
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightlogical_s_i64
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightarithmetic_s_i64
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_s_i64
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightlogical_s_i16
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightarithmetic_s_i16
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_s_i16
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightlogical_s_i8
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftrightarithmetic_s_i8
+dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_s_i8
+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.uconvert.int8_to_uint16
 dEQP-VK.spirv_assembly.instruction.compute.uconvert.int8_to_uint32
 dEQP-VK.spirv_assembly.instruction.compute.uconvert.int8_to_uint64
@@ -79366,6 +86795,96 @@
 dEQP-VK.spirv_assembly.instruction.graphics.unused_variables.set_5_binding_5_vertex_normal_tessc_normal_tesse_unused_var_frag_normal
 dEQP-VK.spirv_assembly.instruction.graphics.unused_variables.set_0_binding_5_vertex_normal_tessc_normal_tesse_unused_func_frag_normal
 dEQP-VK.spirv_assembly.instruction.graphics.unused_variables.set_5_binding_5_vertex_normal_tessc_normal_tesse_unused_func_frag_normal
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i64_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i64_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i64_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i64_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i64_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i64_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i64_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i64_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i64_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i64_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i16_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i16_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i16_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i16_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i16_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i16_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i16_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i16_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i16_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i16_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i16_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i16_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i16_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i16_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i16_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i8_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i8_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i8_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i8_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i8_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i8_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i8_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i8_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i8_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_i8_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i8_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i8_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i8_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i8_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_i8_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i64_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i64_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i64_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i64_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i64_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i64_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i64_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i64_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i64_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i64_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i64_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i64_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i64_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i64_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i64_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i16_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i16_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i16_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i16_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i16_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i16_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i16_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i16_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i16_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i16_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i16_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i16_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i16_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i16_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i16_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i8_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i8_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i8_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i8_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_s_i8_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i8_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i8_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i8_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i8_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightarithmetic_s_i8_frag
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_vert
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_geom
+dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_frag
 dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_vert
 dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_tessc
 dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_tesse
@@ -79692,6 +87211,7 @@
 dEQP-VK.spirv_assembly.instruction.spirv1p4.entrypoint.vert_ubo_entry_point
 dEQP-VK.spirv_assembly.instruction.spirv1p4.hlsl_functionality1.counter_buffer
 dEQP-VK.spirv_assembly.instruction.spirv1p4.hlsl_functionality1.decorate_string
+dEQP-VK.spirv_assembly.instruction.spirv1p4.hlsl_functionality1.member_decorate_string
 dEQP-VK.spirv_assembly.instruction.spirv1p4.loop_control.iteration_multiple
 dEQP-VK.spirv_assembly.instruction.spirv1p4.loop_control.max_iterations
 dEQP-VK.spirv_assembly.instruction.spirv1p4.loop_control.min_iterations
@@ -79719,6 +87239,7 @@
 dEQP-VK.spirv_assembly.instruction.spirv1p4.uconvert.spec_const_opt_zero_extend_n4096
 dEQP-VK.spirv_assembly.instruction.spirv1p4.wrap.no_signed_wrap
 dEQP-VK.spirv_assembly.instruction.spirv1p4.wrap.no_unsigned_wrap
+dEQP-VK.spirv_assembly.instruction.function_params.sampler_param
 dEQP-VK.spirv_assembly.type.scalar.i8.negate_comp
 dEQP-VK.spirv_assembly.type.scalar.i8.add_comp
 dEQP-VK.spirv_assembly.type.scalar.i8.sub_comp
@@ -81626,6 +89147,78 @@
 dEQP-VK.glsl.demote.function_static_loop_dynamic
 dEQP-VK.glsl.demote.function_static_loop_texture
 dEQP-VK.glsl.demote.function_static_loop_deriv
+dEQP-VK.glsl.invariance.highp.gl_position.common_subexpression_0
+dEQP-VK.glsl.invariance.highp.gl_position.common_subexpression_1
+dEQP-VK.glsl.invariance.highp.gl_position.common_subexpression_2
+dEQP-VK.glsl.invariance.highp.gl_position.common_subexpression_3
+dEQP-VK.glsl.invariance.highp.gl_position.subexpression_precision_lowp
+dEQP-VK.glsl.invariance.highp.gl_position.subexpression_precision_mediump
+dEQP-VK.glsl.invariance.highp.gl_position.subexpression_precision_highp
+dEQP-VK.glsl.invariance.highp.gl_position.loop_0
+dEQP-VK.glsl.invariance.highp.gl_position.loop_1
+dEQP-VK.glsl.invariance.highp.gl_position.loop_2
+dEQP-VK.glsl.invariance.highp.gl_position.loop_3
+dEQP-VK.glsl.invariance.highp.gl_position.loop_4
+dEQP-VK.glsl.invariance.highp.user_defined.common_subexpression_0
+dEQP-VK.glsl.invariance.highp.user_defined.common_subexpression_1
+dEQP-VK.glsl.invariance.highp.user_defined.common_subexpression_2
+dEQP-VK.glsl.invariance.highp.user_defined.common_subexpression_3
+dEQP-VK.glsl.invariance.highp.user_defined.subexpression_precision_lowp
+dEQP-VK.glsl.invariance.highp.user_defined.subexpression_precision_mediump
+dEQP-VK.glsl.invariance.highp.user_defined.subexpression_precision_highp
+dEQP-VK.glsl.invariance.highp.user_defined.loop_0
+dEQP-VK.glsl.invariance.highp.user_defined.loop_1
+dEQP-VK.glsl.invariance.highp.user_defined.loop_2
+dEQP-VK.glsl.invariance.highp.user_defined.loop_3
+dEQP-VK.glsl.invariance.highp.user_defined.loop_4
+dEQP-VK.glsl.invariance.mediump.gl_position.common_subexpression_0
+dEQP-VK.glsl.invariance.mediump.gl_position.common_subexpression_1
+dEQP-VK.glsl.invariance.mediump.gl_position.common_subexpression_2
+dEQP-VK.glsl.invariance.mediump.gl_position.common_subexpression_3
+dEQP-VK.glsl.invariance.mediump.gl_position.subexpression_precision_lowp
+dEQP-VK.glsl.invariance.mediump.gl_position.subexpression_precision_mediump
+dEQP-VK.glsl.invariance.mediump.gl_position.subexpression_precision_highp
+dEQP-VK.glsl.invariance.mediump.gl_position.loop_0
+dEQP-VK.glsl.invariance.mediump.gl_position.loop_1
+dEQP-VK.glsl.invariance.mediump.gl_position.loop_2
+dEQP-VK.glsl.invariance.mediump.gl_position.loop_3
+dEQP-VK.glsl.invariance.mediump.gl_position.loop_4
+dEQP-VK.glsl.invariance.mediump.user_defined.common_subexpression_0
+dEQP-VK.glsl.invariance.mediump.user_defined.common_subexpression_1
+dEQP-VK.glsl.invariance.mediump.user_defined.common_subexpression_2
+dEQP-VK.glsl.invariance.mediump.user_defined.common_subexpression_3
+dEQP-VK.glsl.invariance.mediump.user_defined.subexpression_precision_lowp
+dEQP-VK.glsl.invariance.mediump.user_defined.subexpression_precision_mediump
+dEQP-VK.glsl.invariance.mediump.user_defined.subexpression_precision_highp
+dEQP-VK.glsl.invariance.mediump.user_defined.loop_0
+dEQP-VK.glsl.invariance.mediump.user_defined.loop_1
+dEQP-VK.glsl.invariance.mediump.user_defined.loop_2
+dEQP-VK.glsl.invariance.mediump.user_defined.loop_3
+dEQP-VK.glsl.invariance.mediump.user_defined.loop_4
+dEQP-VK.glsl.invariance.lowp.gl_position.common_subexpression_0
+dEQP-VK.glsl.invariance.lowp.gl_position.common_subexpression_1
+dEQP-VK.glsl.invariance.lowp.gl_position.common_subexpression_2
+dEQP-VK.glsl.invariance.lowp.gl_position.common_subexpression_3
+dEQP-VK.glsl.invariance.lowp.gl_position.subexpression_precision_lowp
+dEQP-VK.glsl.invariance.lowp.gl_position.subexpression_precision_mediump
+dEQP-VK.glsl.invariance.lowp.gl_position.subexpression_precision_highp
+dEQP-VK.glsl.invariance.lowp.gl_position.loop_0
+dEQP-VK.glsl.invariance.lowp.gl_position.loop_1
+dEQP-VK.glsl.invariance.lowp.gl_position.loop_2
+dEQP-VK.glsl.invariance.lowp.gl_position.loop_3
+dEQP-VK.glsl.invariance.lowp.gl_position.loop_4
+dEQP-VK.glsl.invariance.lowp.user_defined.common_subexpression_0
+dEQP-VK.glsl.invariance.lowp.user_defined.common_subexpression_1
+dEQP-VK.glsl.invariance.lowp.user_defined.common_subexpression_2
+dEQP-VK.glsl.invariance.lowp.user_defined.common_subexpression_3
+dEQP-VK.glsl.invariance.lowp.user_defined.subexpression_precision_lowp
+dEQP-VK.glsl.invariance.lowp.user_defined.subexpression_precision_mediump
+dEQP-VK.glsl.invariance.lowp.user_defined.subexpression_precision_highp
+dEQP-VK.glsl.invariance.lowp.user_defined.loop_0
+dEQP-VK.glsl.invariance.lowp.user_defined.loop_1
+dEQP-VK.glsl.invariance.lowp.user_defined.loop_2
+dEQP-VK.glsl.invariance.lowp.user_defined.loop_3
+dEQP-VK.glsl.invariance.lowp.user_defined.loop_4
 dEQP-VK.glsl.operator.common_functions.max.mediump_int_vertex
 dEQP-VK.glsl.operator.common_functions.max.mediump_int_fragment
 dEQP-VK.glsl.operator.common_functions.max.highp_int_vertex
@@ -81784,6 +89377,169 @@
 dEQP-VK.glsl.builtin.precision_fp16_storage32b.frem.compute.vec2
 dEQP-VK.glsl.builtin.precision_fp16_storage32b.frem.compute.vec3
 dEQP-VK.glsl.builtin.precision_fp16_storage32b.frem.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.comparison.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.comparison.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.comparison.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.comparison.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.add.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.add.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.add.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.add.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.sub.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.sub.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.sub.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.sub.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.mul.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.mul.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.mul.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.mul.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.div.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.div.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.div.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.div.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.sqrt.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.sqrt.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.sqrt.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.sqrt.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.inversesqrt.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.inversesqrt.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.inversesqrt.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.inversesqrt.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.abs.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.abs.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.abs.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.abs.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.sign.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.sign.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.sign.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.sign.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.floor.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.floor.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.floor.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.floor.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.trunc.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.trunc.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.trunc.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.trunc.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.round.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.round.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.round.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.round.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.roundeven.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.roundeven.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.roundeven.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.roundeven.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.ceil.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.ceil.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.ceil.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.ceil.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.fract.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.fract.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.fract.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.fract.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.mod.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.mod.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.mod.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.mod.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.frem.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.frem.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.frem.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.frem.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.modf.compute
+dEQP-VK.glsl.builtin.precision_double.min.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.min.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.min.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.min.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.max.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.max.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.max.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.max.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.clamp.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.clamp.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.clamp.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.clamp.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.mix.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.mix.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.mix.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.mix.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.step.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.step.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.step.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.step.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.smoothstep.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.smoothstep.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.smoothstep.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.smoothstep.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.length.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.length.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.length.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.length.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.distance.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.distance.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.distance.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.distance.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.dot.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.dot.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.dot.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.dot.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.cross.compute
+dEQP-VK.glsl.builtin.precision_double.normalize.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.normalize.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.normalize.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.normalize.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.faceforward.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.faceforward.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.faceforward.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.faceforward.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.reflect.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.reflect.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.reflect.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.reflect.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.refract.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.refract.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.refract.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.refract.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat2
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat2x3
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat2x4
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat3x2
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat3
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat3x4
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat4x2
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat4x3
+dEQP-VK.glsl.builtin.precision_double.matrixcompmult.compute.mat4
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat2
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat2x3
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat2x4
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat3x2
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat3
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat3x4
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat4x2
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat4x3
+dEQP-VK.glsl.builtin.precision_double.outerproduct.compute.mat4
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat2
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat2x3
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat2x4
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat3x2
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat3
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat3x4
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat4x2
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat4x3
+dEQP-VK.glsl.builtin.precision_double.transpose.compute.mat4
+dEQP-VK.glsl.builtin.precision_double.determinant.compute.mat2
+dEQP-VK.glsl.builtin.precision_double.inverse.compute.mat2
+dEQP-VK.glsl.builtin.precision_double.frexp.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.frexp.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.frexp.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.frexp.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.ldexp.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.ldexp.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.ldexp.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.ldexp.compute.vec4
+dEQP-VK.glsl.builtin.precision_double.fma.compute.scalar
+dEQP-VK.glsl.builtin.precision_double.fma.compute.vec2
+dEQP-VK.glsl.builtin.precision_double.fma.compute.vec3
+dEQP-VK.glsl.builtin.precision_double.fma.compute.vec4
 dEQP-VK.glsl.builtin.precision_fconvert.f16_to_f32_size_1
 dEQP-VK.glsl.builtin.precision_fconvert.f16_to_f32_size_2
 dEQP-VK.glsl.builtin.precision_fconvert.f16_to_f32_size_3
@@ -82654,6 +90410,7 @@
 dEQP-VK.renderpass.suballocation.attachment_sparse_filling.input_attachment_31
 dEQP-VK.renderpass.suballocation.attachment_sparse_filling.input_attachment_63
 dEQP-VK.renderpass.suballocation.attachment_sparse_filling.input_attachment_127
+dEQP-VK.renderpass.multiple_subpasses_multiple_command_buffers.test
 dEQP-VK.renderpass2.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_2.test_depth
 dEQP-VK.renderpass2.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_2.test_stencil
 dEQP-VK.renderpass2.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_4.test_depth
@@ -83338,6 +91095,7 @@
 dEQP-VK.renderpass2.suballocation.attachment_sparse_filling.input_attachment_31
 dEQP-VK.renderpass2.suballocation.attachment_sparse_filling.input_attachment_63
 dEQP-VK.renderpass2.suballocation.attachment_sparse_filling.input_attachment_127
+dEQP-VK.renderpass2.multiple_subpasses_multiple_command_buffers.test
 dEQP-VK.renderpass2.depth_stencil_resolve.misc.properties
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d16_unorm.depth_zero_stencil_none_unused_resolve_testing_depth
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d16_unorm.depth_zero_stencil_zero_unused_resolve_testing_depth
@@ -95009,18 +102767,390 @@
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.depth_max_unused_resolve
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max_unused_resolve
-dEQP-VK.renderpass2.fragment_density_map.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
 dEQP-VK.ubo.random.descriptor_indexing.0
 dEQP-VK.ubo.random.descriptor_indexing.1
 dEQP-VK.ubo.random.descriptor_indexing.2
@@ -100749,6 +108879,8 @@
 dEQP-VK.query_pool.performance_query.query_compute
 dEQP-VK.query_pool.performance_query.multiple_pools_graphic
 dEQP-VK.query_pool.performance_query.multiple_pools_compute
+dEQP-VK.query_pool.concurrent_queries.primary_command_buffer
+dEQP-VK.query_pool.concurrent_queries.secondary_command_buffer
 dEQP-VK.draw.concurrent.compute_and_triangle_list
 dEQP-VK.draw.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0_multiview
 dEQP-VK.draw.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1_multiview
@@ -100890,13 +109022,20 @@
 dEQP-VK.draw.scissor.16_dynamic_scissors
 dEQP-VK.draw.scissor.dynamic_scissor_two_clears
 dEQP-VK.draw.scissor.dynamic_scissor_mix
-dEQP-VK.draw.multiple_interpolation.1_sample
-dEQP-VK.draw.multiple_interpolation.2_samples
-dEQP-VK.draw.multiple_interpolation.4_samples
-dEQP-VK.draw.multiple_interpolation.8_samples
-dEQP-VK.draw.multiple_interpolation.16_samples
-dEQP-VK.draw.multiple_interpolation.32_samples
-dEQP-VK.draw.multiple_interpolation.64_samples
+dEQP-VK.draw.multiple_interpolation.separate.1_sample
+dEQP-VK.draw.multiple_interpolation.separate.2_samples
+dEQP-VK.draw.multiple_interpolation.separate.4_samples
+dEQP-VK.draw.multiple_interpolation.separate.8_samples
+dEQP-VK.draw.multiple_interpolation.separate.16_samples
+dEQP-VK.draw.multiple_interpolation.separate.32_samples
+dEQP-VK.draw.multiple_interpolation.separate.64_samples
+dEQP-VK.draw.multiple_interpolation.structured.1_sample
+dEQP-VK.draw.multiple_interpolation.structured.2_samples
+dEQP-VK.draw.multiple_interpolation.structured.4_samples
+dEQP-VK.draw.multiple_interpolation.structured.8_samples
+dEQP-VK.draw.multiple_interpolation.structured.16_samples
+dEQP-VK.draw.multiple_interpolation.structured.32_samples
+dEQP-VK.draw.multiple_interpolation.structured.64_samples
 dEQP-VK.draw.discard_rectangles.inclusive_rect_1
 dEQP-VK.draw.discard_rectangles.inclusive_rect_2
 dEQP-VK.draw.discard_rectangles.inclusive_rect_3
@@ -105584,6 +113723,90 @@
 dEQP-VK.image.format_reinterpret.buffer.r8_snorm_r8_uint
 dEQP-VK.image.format_reinterpret.buffer.r8_snorm_r8_sint
 dEQP-VK.image.format_reinterpret.buffer.r8_snorm_r8_unorm
+dEQP-VK.image.atomic_operations.sub.1d.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.1d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.1d.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.1d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.sub.1d_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.1d_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.1d_array.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.1d_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.sub.2d.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.2d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.2d.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.2d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.sub.2d_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.2d_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.2d_array.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.2d_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.sub.3d.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.3d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.3d.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.3d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.sub.cube.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.cube.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.cube.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.cube.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.sub.cube_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.sub.cube_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.sub.cube_array.r32i_end_result
+dEQP-VK.image.atomic_operations.sub.cube_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.1d.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.1d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.1d.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.1d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.1d_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.1d_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.1d_array.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.1d_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.2d.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.2d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.2d.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.2d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.2d_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.2d_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.2d_array.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.2d_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.3d.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.3d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.3d.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.3d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.cube.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.cube.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.cube.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.cube.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.inc.cube_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.inc.cube_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.inc.cube_array.r32i_end_result
+dEQP-VK.image.atomic_operations.inc.cube_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.1d.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.1d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.1d.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.1d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.1d_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.1d_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.1d_array.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.1d_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.2d.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.2d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.2d.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.2d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.2d_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.2d_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.2d_array.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.2d_array.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.3d.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.3d.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.3d.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.3d.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.cube.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.cube.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.cube.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.cube.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.dec.cube_array.r32ui_end_result
+dEQP-VK.image.atomic_operations.dec.cube_array.r32ui_intermediate_values
+dEQP-VK.image.atomic_operations.dec.cube_array.r32i_end_result
+dEQP-VK.image.atomic_operations.dec.cube_array.r32i_intermediate_values
 dEQP-VK.image.extend_operands_spirv1p4.r32g32b32a32_uint_matching_extend
 dEQP-VK.image.extend_operands_spirv1p4.r16g16b16a16_uint_matching_extend
 dEQP-VK.image.extend_operands_spirv1p4.r16g16b16a16_uint_relaxed_matching_extend
@@ -105731,6 +113954,8 @@
 dEQP-VK.wsi.android.swapchain.render.2swapchains2
 dEQP-VK.wsi.android.swapchain.render.10swapchains
 dEQP-VK.wsi.android.swapchain.render.10swapchains2
+dEQP-VK.wsi.android.swapchain.acquire.too_many
+dEQP-VK.wsi.android.swapchain.acquire.too_many_timeout
 dEQP-VK.wsi.macos.surface.query_presentation_support
 dEQP-VK.wsi.macos.surface.query_surface_counters
 dEQP-VK.wsi.macos.swapchain.create.image_swapchain_create_info
@@ -105742,6 +113967,8 @@
 dEQP-VK.wsi.macos.swapchain.render.2swapchains2
 dEQP-VK.wsi.macos.swapchain.render.10swapchains
 dEQP-VK.wsi.macos.swapchain.render.10swapchains2
+dEQP-VK.wsi.macos.swapchain.acquire.too_many
+dEQP-VK.wsi.macos.swapchain.acquire.too_many_timeout
 dEQP-VK.wsi.display.surface_counters
 dEQP-VK.wsi.display_control.swapchain_counter
 dEQP-VK.wsi.display_control.display_power_control
@@ -112661,10754 +120888,16130 @@
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.suballocated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_fill_buffer_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_update_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_buffer_to_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_to_buffer_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_copy_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_vertex_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_control_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_tess_eval_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_geometry_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_fragment_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_copy_buffer_to_image.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_control.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_tess_eval.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_geometry.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_ssbo_compute_indirect.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_16384_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_ssbo_compute_indirect_read_vertex_input.buffer_262144_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_vertex_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_control_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_tess_eval_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_geometry_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_fragment_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image_to_buffer.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_copy_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_blit_image.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_vertex.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_control.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_tess_eval.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_geometry.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_fragment.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_color_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_depth_stencil_image_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_draw_indexed_indirect_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image_to_buffer.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d16_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_d32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_copy_image.image_128x128_s8_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_blit_image.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_vertex.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_control.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_tess_eval.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_geometry.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_fragment.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128_r32_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r16g16b16a16_uint_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_clear_attachments_read_image_compute_indirect.image_128x128_r32g32b32a32_sfloat_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_read_indirect_buffer_draw.indirect_buffer_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_draw_indexed_read_indirect_buffer_draw_indexed.indirect_buffer_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_fence_fd
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32_kmt
 dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_win32
+dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_binary_semaphore_dma_buf
+dEQP-VK.synchronization.cross_instance.dedicated.write_indirect_buffer_dispatch_read_indirect_buffer_dispatch.indirect_buffer_timeline_semaphore_dma_buf
 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384
 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer.buffer_262144
 dEQP-VK.synchronization.signal_order.binary_semaphore.write_copy_buffer_read_copy_buffer_to_image.buffer_16384
@@ -138917,6 +152520,14 @@
 dEQP-VK.sparse_resources.shader_intrinsics.2d_array_sparse_gather.g16_b16_r16_3plane_444_unorm.128_128_8
 dEQP-VK.sparse_resources.shader_intrinsics.2d_array_sparse_gather.g16_b16_r16_3plane_444_unorm.503_137_3
 dEQP-VK.sparse_resources.shader_intrinsics.2d_array_sparse_gather.g16_b16_r16_3plane_444_unorm.11_37_3
+dEQP-VK.rasterization.primitives.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives.no_stipple.strict_line_strip
+dEQP-VK.rasterization.primitives.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives.no_stipple.strict_line_strip_wide
+dEQP-VK.rasterization.primitives.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives.no_stipple.non_strict_line_strip
+dEQP-VK.rasterization.primitives.no_stipple.non_strict_lines_wide
+dEQP-VK.rasterization.primitives.no_stipple.non_strict_line_strip_wide
 dEQP-VK.rasterization.primitives.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives.no_stipple.rectangular_lines_wide
@@ -138969,6 +152580,34 @@
 dEQP-VK.rasterization.primitive_size.points.point_size_4096
 dEQP-VK.rasterization.primitive_size.points.point_size_8192
 dEQP-VK.rasterization.primitive_size.points.point_size_10000
+dEQP-VK.rasterization.interpolation.basic.strict_lines
+dEQP-VK.rasterization.interpolation.basic.strict_line_strip
+dEQP-VK.rasterization.interpolation.basic.strict_lines_wide
+dEQP-VK.rasterization.interpolation.basic.strict_line_strip_wide
+dEQP-VK.rasterization.interpolation.basic.non_strict_lines
+dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip
+dEQP-VK.rasterization.interpolation.basic.non_strict_lines_wide
+dEQP-VK.rasterization.interpolation.basic.non_strict_line_strip_wide
+dEQP-VK.rasterization.interpolation.projected.strict_lines
+dEQP-VK.rasterization.interpolation.projected.strict_line_strip
+dEQP-VK.rasterization.interpolation.projected.strict_lines_wide
+dEQP-VK.rasterization.interpolation.projected.strict_line_strip_wide
+dEQP-VK.rasterization.interpolation.projected.non_strict_lines
+dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip
+dEQP-VK.rasterization.interpolation.projected.non_strict_lines_wide
+dEQP-VK.rasterization.interpolation.projected.non_strict_line_strip_wide
+dEQP-VK.rasterization.flatshading.strict_lines
+dEQP-VK.rasterization.flatshading.strict_line_strip
+dEQP-VK.rasterization.flatshading.strict_lines_wide
+dEQP-VK.rasterization.flatshading.strict_line_strip_wide
+dEQP-VK.rasterization.flatshading.non_strict_lines
+dEQP-VK.rasterization.flatshading.non_strict_line_strip
+dEQP-VK.rasterization.flatshading.non_strict_lines_wide
+dEQP-VK.rasterization.flatshading.non_strict_line_strip_wide
+dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.non_strict_lines_wide
 dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.rectangular_lines_wide
@@ -139013,6 +152652,14 @@
 dEQP-VK.rasterization.primitives_multisample_2_bit.dynamic_stipple.smooth_line_strip
 dEQP-VK.rasterization.primitives_multisample_2_bit.dynamic_stipple.smooth_lines_wide
 dEQP-VK.rasterization.primitives_multisample_2_bit.dynamic_stipple.smooth_line_strip_wide
+dEQP-VK.rasterization.interpolation_multisample_2_bit.strict_lines
+dEQP-VK.rasterization.interpolation_multisample_2_bit.strict_lines_wide
+dEQP-VK.rasterization.interpolation_multisample_2_bit.non_strict_lines
+dEQP-VK.rasterization.interpolation_multisample_2_bit.non_strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.non_strict_lines_wide
 dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.rectangular_lines_wide
@@ -139057,6 +152704,14 @@
 dEQP-VK.rasterization.primitives_multisample_4_bit.dynamic_stipple.smooth_line_strip
 dEQP-VK.rasterization.primitives_multisample_4_bit.dynamic_stipple.smooth_lines_wide
 dEQP-VK.rasterization.primitives_multisample_4_bit.dynamic_stipple.smooth_line_strip_wide
+dEQP-VK.rasterization.interpolation_multisample_4_bit.strict_lines
+dEQP-VK.rasterization.interpolation_multisample_4_bit.strict_lines_wide
+dEQP-VK.rasterization.interpolation_multisample_4_bit.non_strict_lines
+dEQP-VK.rasterization.interpolation_multisample_4_bit.non_strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.non_strict_lines_wide
 dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.rectangular_lines_wide
@@ -139101,6 +152756,14 @@
 dEQP-VK.rasterization.primitives_multisample_8_bit.dynamic_stipple.smooth_line_strip
 dEQP-VK.rasterization.primitives_multisample_8_bit.dynamic_stipple.smooth_lines_wide
 dEQP-VK.rasterization.primitives_multisample_8_bit.dynamic_stipple.smooth_line_strip_wide
+dEQP-VK.rasterization.interpolation_multisample_8_bit.strict_lines
+dEQP-VK.rasterization.interpolation_multisample_8_bit.strict_lines_wide
+dEQP-VK.rasterization.interpolation_multisample_8_bit.non_strict_lines
+dEQP-VK.rasterization.interpolation_multisample_8_bit.non_strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.non_strict_lines_wide
 dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.rectangular_lines_wide
@@ -139145,6 +152808,14 @@
 dEQP-VK.rasterization.primitives_multisample_16_bit.dynamic_stipple.smooth_line_strip
 dEQP-VK.rasterization.primitives_multisample_16_bit.dynamic_stipple.smooth_lines_wide
 dEQP-VK.rasterization.primitives_multisample_16_bit.dynamic_stipple.smooth_line_strip_wide
+dEQP-VK.rasterization.interpolation_multisample_16_bit.strict_lines
+dEQP-VK.rasterization.interpolation_multisample_16_bit.strict_lines_wide
+dEQP-VK.rasterization.interpolation_multisample_16_bit.non_strict_lines
+dEQP-VK.rasterization.interpolation_multisample_16_bit.non_strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.non_strict_lines_wide
 dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives_multisample_32_bit.no_stipple.rectangular_lines_wide
@@ -139189,6 +152860,14 @@
 dEQP-VK.rasterization.primitives_multisample_32_bit.dynamic_stipple.smooth_line_strip
 dEQP-VK.rasterization.primitives_multisample_32_bit.dynamic_stipple.smooth_lines_wide
 dEQP-VK.rasterization.primitives_multisample_32_bit.dynamic_stipple.smooth_line_strip_wide
+dEQP-VK.rasterization.interpolation_multisample_32_bit.strict_lines
+dEQP-VK.rasterization.interpolation_multisample_32_bit.strict_lines_wide
+dEQP-VK.rasterization.interpolation_multisample_32_bit.non_strict_lines
+dEQP-VK.rasterization.interpolation_multisample_32_bit.non_strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.strict_lines
+dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.non_strict_lines
+dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.non_strict_lines_wide
 dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.rectangular_lines
 dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.rectangular_line_strip
 dEQP-VK.rasterization.primitives_multisample_64_bit.no_stipple.rectangular_lines_wide
@@ -139233,6 +152912,10 @@
 dEQP-VK.rasterization.primitives_multisample_64_bit.dynamic_stipple.smooth_line_strip
 dEQP-VK.rasterization.primitives_multisample_64_bit.dynamic_stipple.smooth_lines_wide
 dEQP-VK.rasterization.primitives_multisample_64_bit.dynamic_stipple.smooth_line_strip_wide
+dEQP-VK.rasterization.interpolation_multisample_64_bit.strict_lines
+dEQP-VK.rasterization.interpolation_multisample_64_bit.strict_lines_wide
+dEQP-VK.rasterization.interpolation_multisample_64_bit.non_strict_lines
+dEQP-VK.rasterization.interpolation_multisample_64_bit.non_strict_lines_wide
 dEQP-VK.rasterization.provoking_vertex.triangle_list
 dEQP-VK.rasterization.provoking_vertex.triangle_list_with_adjacency
 dEQP-VK.rasterization.provoking_vertex.triangle_strip
@@ -140671,16 +154354,140 @@
 dEQP-VK.texture.swizzle.texture_coordinate.astc_12x12_srgb_block_2d_npot_sparse_yx
 dEQP-VK.texture.swizzle.texture_coordinate.astc_12x12_srgb_block_2d_npot_sparse_xx
 dEQP-VK.texture.swizzle.texture_coordinate.astc_12x12_srgb_block_2d_npot_sparse_yy
-dEQP-VK.geometry.layered.1d_array.secondary_cmd_buffer
-dEQP-VK.geometry.layered.1d_array.secondary_cmd_buffer_inherit_framebuffer
-dEQP-VK.geometry.layered.2d_array.secondary_cmd_buffer
-dEQP-VK.geometry.layered.2d_array.secondary_cmd_buffer_inherit_framebuffer
-dEQP-VK.geometry.layered.cube.secondary_cmd_buffer
-dEQP-VK.geometry.layered.cube.secondary_cmd_buffer_inherit_framebuffer
-dEQP-VK.geometry.layered.cube_array.secondary_cmd_buffer
-dEQP-VK.geometry.layered.cube_array.secondary_cmd_buffer_inherit_framebuffer
-dEQP-VK.geometry.layered.3d.secondary_cmd_buffer
-dEQP-VK.geometry.layered.3d.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.texture.subgroup_lod.texturelod
+dEQP-VK.texture.subgroup_lod.texturegrad
+dEQP-VK.texture.subgroup_lod.texelfetch
+dEQP-VK.geometry.layered.1d_array.64_1_4.render_to_default_layer
+dEQP-VK.geometry.layered.1d_array.64_1_4.render_to_one
+dEQP-VK.geometry.layered.1d_array.64_1_4.render_to_all
+dEQP-VK.geometry.layered.1d_array.64_1_4.render_different_content
+dEQP-VK.geometry.layered.1d_array.64_1_4.fragment_layer
+dEQP-VK.geometry.layered.1d_array.64_1_4.invocation_per_layer
+dEQP-VK.geometry.layered.1d_array.64_1_4.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.1d_array.64_1_4.readback
+dEQP-VK.geometry.layered.1d_array.64_1_4.secondary_cmd_buffer
+dEQP-VK.geometry.layered.1d_array.64_1_4.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.1d_array.12_1_6.render_to_default_layer
+dEQP-VK.geometry.layered.1d_array.12_1_6.render_to_one
+dEQP-VK.geometry.layered.1d_array.12_1_6.render_to_all
+dEQP-VK.geometry.layered.1d_array.12_1_6.render_different_content
+dEQP-VK.geometry.layered.1d_array.12_1_6.fragment_layer
+dEQP-VK.geometry.layered.1d_array.12_1_6.invocation_per_layer
+dEQP-VK.geometry.layered.1d_array.12_1_6.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.1d_array.12_1_6.readback
+dEQP-VK.geometry.layered.1d_array.12_1_6.secondary_cmd_buffer
+dEQP-VK.geometry.layered.1d_array.12_1_6.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.2d_array.64_64_4.render_to_default_layer
+dEQP-VK.geometry.layered.2d_array.64_64_4.render_to_one
+dEQP-VK.geometry.layered.2d_array.64_64_4.render_to_all
+dEQP-VK.geometry.layered.2d_array.64_64_4.render_different_content
+dEQP-VK.geometry.layered.2d_array.64_64_4.fragment_layer
+dEQP-VK.geometry.layered.2d_array.64_64_4.invocation_per_layer
+dEQP-VK.geometry.layered.2d_array.64_64_4.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.2d_array.64_64_4.readback
+dEQP-VK.geometry.layered.2d_array.64_64_4.secondary_cmd_buffer
+dEQP-VK.geometry.layered.2d_array.64_64_4.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.2d_array.12_36_6.render_to_default_layer
+dEQP-VK.geometry.layered.2d_array.12_36_6.render_to_one
+dEQP-VK.geometry.layered.2d_array.12_36_6.render_to_all
+dEQP-VK.geometry.layered.2d_array.12_36_6.render_different_content
+dEQP-VK.geometry.layered.2d_array.12_36_6.fragment_layer
+dEQP-VK.geometry.layered.2d_array.12_36_6.invocation_per_layer
+dEQP-VK.geometry.layered.2d_array.12_36_6.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.2d_array.12_36_6.readback
+dEQP-VK.geometry.layered.2d_array.12_36_6.secondary_cmd_buffer
+dEQP-VK.geometry.layered.2d_array.12_36_6.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.cube.64_64_6.render_to_default_layer
+dEQP-VK.geometry.layered.cube.64_64_6.render_to_one
+dEQP-VK.geometry.layered.cube.64_64_6.render_to_all
+dEQP-VK.geometry.layered.cube.64_64_6.render_different_content
+dEQP-VK.geometry.layered.cube.64_64_6.fragment_layer
+dEQP-VK.geometry.layered.cube.64_64_6.invocation_per_layer
+dEQP-VK.geometry.layered.cube.64_64_6.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.cube.64_64_6.readback
+dEQP-VK.geometry.layered.cube.64_64_6.secondary_cmd_buffer
+dEQP-VK.geometry.layered.cube.64_64_6.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.cube.36_36_6.render_to_default_layer
+dEQP-VK.geometry.layered.cube.36_36_6.render_to_one
+dEQP-VK.geometry.layered.cube.36_36_6.render_to_all
+dEQP-VK.geometry.layered.cube.36_36_6.render_different_content
+dEQP-VK.geometry.layered.cube.36_36_6.fragment_layer
+dEQP-VK.geometry.layered.cube.36_36_6.invocation_per_layer
+dEQP-VK.geometry.layered.cube.36_36_6.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.cube.36_36_6.readback
+dEQP-VK.geometry.layered.cube.36_36_6.secondary_cmd_buffer
+dEQP-VK.geometry.layered.cube.36_36_6.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.cube_array.64_64_12.render_to_default_layer
+dEQP-VK.geometry.layered.cube_array.64_64_12.render_to_one
+dEQP-VK.geometry.layered.cube_array.64_64_12.render_to_all
+dEQP-VK.geometry.layered.cube_array.64_64_12.render_different_content
+dEQP-VK.geometry.layered.cube_array.64_64_12.fragment_layer
+dEQP-VK.geometry.layered.cube_array.64_64_12.invocation_per_layer
+dEQP-VK.geometry.layered.cube_array.64_64_12.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.cube_array.64_64_12.readback
+dEQP-VK.geometry.layered.cube_array.64_64_12.secondary_cmd_buffer
+dEQP-VK.geometry.layered.cube_array.64_64_12.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.cube_array.36_36_12.render_to_default_layer
+dEQP-VK.geometry.layered.cube_array.36_36_12.render_to_one
+dEQP-VK.geometry.layered.cube_array.36_36_12.render_to_all
+dEQP-VK.geometry.layered.cube_array.36_36_12.render_different_content
+dEQP-VK.geometry.layered.cube_array.36_36_12.fragment_layer
+dEQP-VK.geometry.layered.cube_array.36_36_12.invocation_per_layer
+dEQP-VK.geometry.layered.cube_array.36_36_12.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.cube_array.36_36_12.readback
+dEQP-VK.geometry.layered.cube_array.36_36_12.secondary_cmd_buffer
+dEQP-VK.geometry.layered.cube_array.36_36_12.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.3d.64_64_8.render_to_default_layer
+dEQP-VK.geometry.layered.3d.64_64_8.render_to_one
+dEQP-VK.geometry.layered.3d.64_64_8.render_to_all
+dEQP-VK.geometry.layered.3d.64_64_8.render_different_content
+dEQP-VK.geometry.layered.3d.64_64_8.fragment_layer
+dEQP-VK.geometry.layered.3d.64_64_8.invocation_per_layer
+dEQP-VK.geometry.layered.3d.64_64_8.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.3d.64_64_8.readback
+dEQP-VK.geometry.layered.3d.64_64_8.secondary_cmd_buffer
+dEQP-VK.geometry.layered.3d.64_64_8.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.geometry.layered.3d.12_36_6.render_to_default_layer
+dEQP-VK.geometry.layered.3d.12_36_6.render_to_one
+dEQP-VK.geometry.layered.3d.12_36_6.render_to_all
+dEQP-VK.geometry.layered.3d.12_36_6.render_different_content
+dEQP-VK.geometry.layered.3d.12_36_6.fragment_layer
+dEQP-VK.geometry.layered.3d.12_36_6.invocation_per_layer
+dEQP-VK.geometry.layered.3d.12_36_6.multiple_layers_per_invocation
+dEQP-VK.geometry.layered.3d.12_36_6.readback
+dEQP-VK.geometry.layered.3d.12_36_6.secondary_cmd_buffer
+dEQP-VK.geometry.layered.3d.12_36_6.secondary_cmd_buffer_inherit_framebuffer
+dEQP-VK.multiview.non_precise_queries.15
+dEQP-VK.multiview.non_precise_queries.8
+dEQP-VK.multiview.non_precise_queries.1_2_4_8
+dEQP-VK.multiview.non_precise_queries.15_15_15_15
+dEQP-VK.multiview.non_precise_queries.8_1_1_8
+dEQP-VK.multiview.non_precise_queries.5_10_5_10
+dEQP-VK.multiview.non_precise_queries.1_2_4_8_16_32
+dEQP-VK.multiview.non_precise_queries.max_multi_view_view_count
+dEQP-VK.multiview.renderpass2.non_precise_queries.15
+dEQP-VK.multiview.renderpass2.non_precise_queries.8
+dEQP-VK.multiview.renderpass2.non_precise_queries.1_2_4_8
+dEQP-VK.multiview.renderpass2.non_precise_queries.15_15_15_15
+dEQP-VK.multiview.renderpass2.non_precise_queries.8_1_1_8
+dEQP-VK.multiview.renderpass2.non_precise_queries.5_10_5_10
+dEQP-VK.multiview.renderpass2.non_precise_queries.1_2_4_8_16_32
+dEQP-VK.multiview.renderpass2.non_precise_queries.max_multi_view_view_count
+dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_var.compute.numsubgroups_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_var.compute.subgroupid_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask_requiredsubgroupsize
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask_requiredsubgroupsize
+dEQP-VK.subgroups.basic.compute.subgroupelect_requiredsubgroupsize
+dEQP-VK.subgroups.basic.compute.subgroupbarrier_requiredsubgroupsize
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier_requiredsubgroupsize
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer_requiredsubgroupsize
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared_requiredsubgroupsize
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage_requiredsubgroupsize
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_int8_t
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_i8vec2
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_i8vec3
@@ -140710,33 +154517,83 @@
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_f16vec3
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_f16vec4
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupall_uint_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupany_uint_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_double_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bool_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_vertex
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_eval
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_control
@@ -140881,8 +154738,11 @@
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.anyinvocationarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsequalarb_bool
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_vertex
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_eval
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_control
@@ -140898,8 +154758,10 @@
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.allinvocationsarb_uint_fragment
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.anyinvocationarb_uint_fragment
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.allinvocationsequalarb_bool_fragment
+dEQP-VK.subgroups.ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute
+dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.geometry
@@ -141009,109 +154871,253 @@
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec3
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_tvertex
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_eval
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_control
@@ -141538,14 +155544,23 @@
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcast_nonconst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcastfirst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_intvertex
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_eval
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_control
@@ -141582,6 +155597,13 @@
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcastfirst_floattess_eval
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcastfirst_floattess_control
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcastfirst_floatgeometry
+dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot_requiredsubgroupSize
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract_requiredsubgroupSize
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount_requiredsubgroupSize
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount_requiredsubgroupSize
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount_requiredsubgroupSize
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb_requiredsubgroupSize
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb_requiredsubgroupSize
 dEQP-VK.subgroups.arithmetic.graphics.subgroupadd_int8_t
 dEQP-VK.subgroups.arithmetic.graphics.subgroupmul_int8_t
 dEQP-VK.subgroups.arithmetic.graphics.subgroupmin_int8_t
@@ -142135,557 +156157,1409 @@
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusivemin_f16vec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusivemax_f16vec4
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_control
@@ -145079,189 +159953,473 @@
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredmin_f16vec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredmax_f16vec4
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_vertex
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_eval
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_control
@@ -146551,557 +161709,1409 @@
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusivemin_f16vec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusivemax_f16vec4
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_control
@@ -149423,117 +165433,309 @@
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_f16vec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffledown_f16vec4
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_vertex
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_eval
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_control
@@ -150114,138 +166316,378 @@
 dEQP-VK.subgroups.quad.graphics.subgroupquadbroadcast_nonconst_bvec2
 dEQP-VK.subgroups.quad.graphics.subgroupquadbroadcast_nonconst_bvec3
 dEQP-VK.subgroups.quad.graphics.subgroupquadbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_nonconst_int8_t_vertex
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_nonconst_int8_t_tess_eval
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_nonconst_int8_t_tess_control
@@ -150774,16 +167216,23 @@
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_nonconst_bvec4_tess_eval
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_nonconst_bvec4_tess_control
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_nonconst_bvec4_geometry
+dEQP-VK.subgroups.shape.compute.clustered_requiredsubgroupsize
+dEQP-VK.subgroups.shape.compute.quad_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupeqmaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupgemaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupgtmaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgrouplemaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupltmaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_vertex
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_control
@@ -150804,6 +167253,32 @@
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_control
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_geometry
+dEQP-VK.subgroups.size_control.generic.subgroup_size_properties
+dEQP-VK.subgroups.size_control.graphics.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_min
+dEQP-VK.subgroups.size_control.compute.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_max_require_full_subgroups
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min_require_full_subgroups
+dEQP-VK.subgroups.size_control.framebuffer.vertex_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.geometry_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.fragment_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_min
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal_array
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_linear_array
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_linear_array_mapped
@@ -166660,17 +183135,71 @@
 dEQP-VK.conditional_rendering.clear_attachments.condition_inherited_expect_execution_inverted.clear_attachments
 dEQP-VK.conditional_rendering.clear_attachments.condition_inherited_expect_noop_inverted.clear_attachments
 dEQP-VK.graphicsfuzz.access-new-vector-inside-if-condition
+dEQP-VK.graphicsfuzz.always-discarding-function
 dEQP-VK.graphicsfuzz.always-false-if-in-do-while
 dEQP-VK.graphicsfuzz.always-false-if-with-discard-return
 dEQP-VK.graphicsfuzz.barrier-in-loop-with-break
 dEQP-VK.graphicsfuzz.break-in-do-while-with-nested-if
+dEQP-VK.graphicsfuzz.call-function-with-discard
 dEQP-VK.graphicsfuzz.call-if-while-switch
+dEQP-VK.graphicsfuzz.color-set-in-for-loop
 dEQP-VK.graphicsfuzz.color-write-in-loop
 dEQP-VK.graphicsfuzz.complex-nested-loops-and-call
 dEQP-VK.graphicsfuzz.conditional-return-in-infinite-while
 dEQP-VK.graphicsfuzz.continue-and-merge
 dEQP-VK.graphicsfuzz.control-flow-in-function
 dEQP-VK.graphicsfuzz.control-flow-switch
+dEQP-VK.graphicsfuzz.cov-apfloat-determinant
+dEQP-VK.graphicsfuzz.cov-apfloat-tanh
+dEQP-VK.graphicsfuzz.cov-blockfrequency-several-for-loops
+dEQP-VK.graphicsfuzz.cov-const-folding-clamp
+dEQP-VK.graphicsfuzz.cov-const-folding-clamp-max
+dEQP-VK.graphicsfuzz.cov-const-folding-clamp-min
+dEQP-VK.graphicsfuzz.cov-const-folding-dot-condition-true
+dEQP-VK.graphicsfuzz.cov-const-folding-dot-determinant
+dEQP-VK.graphicsfuzz.cov-const-folding-vector-shuffle
+dEQP-VK.graphicsfuzz.cov-constants-mix-uniform
+dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-func-argument
+dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-no-stores
+dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-param-uniform
+dEQP-VK.graphicsfuzz.cov-dead-code-unreachable-merge
+dEQP-VK.graphicsfuzz.cov-fold-bitwise-and-zero
+dEQP-VK.graphicsfuzz.cov-fold-bitwise-or-full-mask
+dEQP-VK.graphicsfuzz.cov-fold-bitwise-xor
+dEQP-VK.graphicsfuzz.cov-fold-div-uniform-by-zero
+dEQP-VK.graphicsfuzz.cov-fold-div-variable-by-zero
+dEQP-VK.graphicsfuzz.cov-fold-logical-and-const-variable
+dEQP-VK.graphicsfuzz.cov-fold-logical-and-constant
+dEQP-VK.graphicsfuzz.cov-fold-logical-or-constant
+dEQP-VK.graphicsfuzz.cov-fold-negate-variable
+dEQP-VK.graphicsfuzz.cov-fold-shift-gte32
+dEQP-VK.graphicsfuzz.cov-fold-shift-right-arithmetic
+dEQP-VK.graphicsfuzz.cov-fold-switch-udiv
+dEQP-VK.graphicsfuzz.cov-folding-rules-construct-extract
+dEQP-VK.graphicsfuzz.cov-folding-rules-dot-extract
+dEQP-VK.graphicsfuzz.cov-folding-rules-dot-no-extract
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-add-sub
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-sub-add
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-sub-sub
+dEQP-VK.graphicsfuzz.cov-folding-rules-redundant-mix
+dEQP-VK.graphicsfuzz.cov-folding-rules-shuffle-extract
+dEQP-VK.graphicsfuzz.cov-folding-rules-shuffle-mix
+dEQP-VK.graphicsfuzz.cov-folding-rules-split-vector-init
+dEQP-VK.graphicsfuzz.cov-if-conversion-identical-branches
+dEQP-VK.graphicsfuzz.cov-inline-pass-empty-block
+dEQP-VK.graphicsfuzz.cov-inline-pass-nested-loops
+dEQP-VK.graphicsfuzz.cov-inline-pass-unreachable-func
+dEQP-VK.graphicsfuzz.cov-intervalmap-set-stop
+dEQP-VK.graphicsfuzz.cov-liveinterval-different-dest
+dEQP-VK.graphicsfuzz.cov-merge-return-condition-twice
+dEQP-VK.graphicsfuzz.cov-modf-integer-to-private
+dEQP-VK.graphicsfuzz.cov-reduce-load-replace-extract
+dEQP-VK.graphicsfuzz.cov-simplification-while-inside-for
+dEQP-VK.graphicsfuzz.cov-single-block-elim-self-assign
+dEQP-VK.graphicsfuzz.cov-ssa-rewrite-case-with-default
+dEQP-VK.graphicsfuzz.cov-types-return-in-main-never-hit
+dEQP-VK.graphicsfuzz.cov-vector-dce-inc-unused-comp
+dEQP-VK.graphicsfuzz.cov-vector-dce-unused-component
 dEQP-VK.graphicsfuzz.dead-barriers-in-loops
 dEQP-VK.graphicsfuzz.dead-struct-init
 dEQP-VK.graphicsfuzz.disc-and-add-in-func-in-loop
@@ -166687,7 +183216,10 @@
 dEQP-VK.graphicsfuzz.for-with-ifs-and-return
 dEQP-VK.graphicsfuzz.fragcoord-control-flow
 dEQP-VK.graphicsfuzz.fragcoord-control-flow-2
+dEQP-VK.graphicsfuzz.function-with-uniform-return
+dEQP-VK.graphicsfuzz.global-array-loops
 dEQP-VK.graphicsfuzz.if-and-switch
+dEQP-VK.graphicsfuzz.injection-switch-as-comparison
 dEQP-VK.graphicsfuzz.int-mat2-struct
 dEQP-VK.graphicsfuzz.loop-call-discard
 dEQP-VK.graphicsfuzz.loop-dead-if-loop
@@ -166702,20 +183234,25 @@
 dEQP-VK.graphicsfuzz.mix-floor-add
 dEQP-VK.graphicsfuzz.modf-gl-color
 dEQP-VK.graphicsfuzz.modf-temp-modf-color
+dEQP-VK.graphicsfuzz.nested-for-break-mat-color
 dEQP-VK.graphicsfuzz.nested-for-loops-with-return
 dEQP-VK.graphicsfuzz.nested-ifs-and-return-in-for-loop
 dEQP-VK.graphicsfuzz.nested-loops-switch
+dEQP-VK.graphicsfuzz.nested-switch-break-discard
 dEQP-VK.graphicsfuzz.pow-vec4
 dEQP-VK.graphicsfuzz.return-before-writing-wrong-color
 dEQP-VK.graphicsfuzz.return-float-from-while-loop
 dEQP-VK.graphicsfuzz.return-in-loop-in-function
+dEQP-VK.graphicsfuzz.return-inside-loop-in-function
 dEQP-VK.graphicsfuzz.returned-boolean-in-vector
 dEQP-VK.graphicsfuzz.similar-nested-ifs
 dEQP-VK.graphicsfuzz.smoothstep-after-loop
 dEQP-VK.graphicsfuzz.struct-and-unreachable-infinite-loop
 dEQP-VK.graphicsfuzz.struct-controlled-loop
 dEQP-VK.graphicsfuzz.struct-used-as-temporary
+dEQP-VK.graphicsfuzz.switch-case-with-undefined-expression
 dEQP-VK.graphicsfuzz.switch-if-discard
+dEQP-VK.graphicsfuzz.switch-inside-while-always-return
 dEQP-VK.graphicsfuzz.switch-with-empty-if-false
 dEQP-VK.graphicsfuzz.swizzle-struct-init-min
 dEQP-VK.graphicsfuzz.transpose-rectangular-matrix
@@ -166739,6 +183276,8 @@
 dEQP-VK.graphicsfuzz.unreachable-loops-in-switch
 dEQP-VK.graphicsfuzz.unreachable-return-in-loop
 dEQP-VK.graphicsfuzz.unreachable-switch-case-with-discards
+dEQP-VK.graphicsfuzz.uv-value-comparison-as-boolean
+dEQP-VK.graphicsfuzz.vectors-and-discard-in-function
 dEQP-VK.graphicsfuzz.while-function-always-false
 dEQP-VK.graphicsfuzz.while-inside-switch
 dEQP-VK.graphicsfuzz.write-before-break
diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt
index 5a17a98..44ee633 100644
--- a/android/cts/master/vk-master.txt
+++ b/android/cts/master/vk-master.txt
Binary files differ
diff --git a/external/fetch_sources.py b/external/fetch_sources.py
index c1bce54..9ede463 100644
--- a/external/fetch_sources.py
+++ b/external/fetch_sources.py
@@ -332,7 +332,7 @@
 	GitRepo(
 		"https://github.com/google/amber.git",
 		None,
-		"0556811aeaad846f4bacbbd03e05e61fbfe1e545",
+		"ed3e05c945aa7a3559ef616f63a798fede19f363",
 		"amber"),
 ]
 
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt
index 889da6a..1c6b003 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles31-master.txt
@@ -19951,6 +19951,9 @@
 dEQP-GLES31.functional.fbo.color.texcubearray.r32f
 dEQP-GLES31.functional.fbo.color.texcubearray.r16f
 dEQP-GLES31.functional.fbo.color.texcubearray.rgb16f
+dEQP-GLES31.functional.fbo.color.tex2d.r16
+dEQP-GLES31.functional.fbo.color.tex2d.rg16
+dEQP-GLES31.functional.fbo.color.tex2d.rgba16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x64
 dEQP-GLES31.functional.fbo.no_attachments.size.16x256
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles31-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles31-master.txt
index ed1d2aa..8f6b995 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles31-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles31-master.txt
@@ -19955,6 +19955,9 @@
 dEQP-GLES31.functional.fbo.color.texcubearray.r32f
 dEQP-GLES31.functional.fbo.color.texcubearray.r16f
 dEQP-GLES31.functional.fbo.color.texcubearray.rgb16f
+dEQP-GLES31.functional.fbo.color.tex2d.r16
+dEQP-GLES31.functional.fbo.color.tex2d.rg16
+dEQP-GLES31.functional.fbo.color.tex2d.rgba16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x64
 dEQP-GLES31.functional.fbo.no_attachments.size.16x256
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt
index d0985a0..0695f2a 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles31-master.txt
@@ -19986,6 +19986,9 @@
 dEQP-GLES31.functional.fbo.color.texcubearray.r32f
 dEQP-GLES31.functional.fbo.color.texcubearray.r16f
 dEQP-GLES31.functional.fbo.color.texcubearray.rgb16f
+dEQP-GLES31.functional.fbo.color.tex2d.r16
+dEQP-GLES31.functional.fbo.color.tex2d.rg16
+dEQP-GLES31.functional.fbo.color.tex2d.rgba16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x16
 dEQP-GLES31.functional.fbo.no_attachments.size.16x64
 dEQP-GLES31.functional.fbo.no_attachments.size.16x256
diff --git a/external/openglcts/modules/common/glcUniformBlockCase.cpp b/external/openglcts/modules/common/glcUniformBlockCase.cpp
index 098dafe..c2b973f 100644
--- a/external/openglcts/modules/common/glcUniformBlockCase.cpp
+++ b/external/openglcts/modules/common/glcUniformBlockCase.cpp
@@ -23,6 +23,7 @@
  */ /*-------------------------------------------------------------------*/
 
 #include "glcUniformBlockCase.hpp"
+#include "deInt32.h"
 #include "deMemory.h"
 #include "deRandom.hpp"
 #include "deString.h"
@@ -376,12 +377,6 @@
 	return de::max(baseStride, vec4Alignment); // Really? See rule 4.
 }
 
-static inline int deRoundUp32(int a, int b)
-{
-	int d = a / b;
-	return d * b == a ? a : (d + 1) * b;
-}
-
 int computeStd140BaseAlignment(const VarType& type)
 {
 	const int vec4Alignment = static_cast<int>(sizeof(deUint32) * 4);
diff --git a/external/openglcts/modules/gl/gl3cCullDistanceTests.cpp b/external/openglcts/modules/gl/gl3cCullDistanceTests.cpp
index 84bd8d3..3b82996 100644
--- a/external/openglcts/modules/gl/gl3cCullDistanceTests.cpp
+++ b/external/openglcts/modules/gl/gl3cCullDistanceTests.cpp
@@ -508,12 +508,15 @@
 		GLU_EXPECT_NO_ERROR(gl.getError(), "glTexStorage2D() call failed.");
 	}
 
-	gl.bindImageTexture(0,			   /* unit */
-						m_cs_to_id, 0, /* level */
-						GL_FALSE,	  /* layered */
-						0,			   /* layer */
-						GL_WRITE_ONLY, GL_R32I);
-	GLU_EXPECT_NO_ERROR(gl.getError(), "glBindImageTexture() call failed.");
+	if (glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::core(4, 3)) ||
+	    m_context.getContextInfo().isExtensionSupported("GL_ARB_compute_shader")) {
+		gl.bindImageTexture(0,			   /* unit */
+				    m_cs_to_id, 0, /* level */
+				    GL_FALSE,	  /* layered */
+				    0,			   /* layer */
+				    GL_WRITE_ONLY, GL_R32I);
+                GLU_EXPECT_NO_ERROR(gl.getError(), "glBindImageTexture() call failed.");
+	}
 
 	gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, m_fbo_draw_id);
 	GLU_EXPECT_NO_ERROR(gl.getError(), "glBindFramebuffer() call failed.");
@@ -1138,9 +1141,10 @@
 
 	static const glw::GLchar* core_functionality = "#version 450\n";
 
-	static const glw::GLchar* extention_functionality = "#version 440\n"
+	static const glw::GLchar* extention_functionality = "#version 150\n"
 														"\n"
 														"#extension GL_ARB_cull_distance : require\n"
+														"TEMPLATE_EXTENSIONS\n"
 														"\n"
 														"#ifndef GL_ARB_cull_distance\n"
 														"    #error GL_ARB_cull_distance is undefined\n"
@@ -1467,6 +1471,10 @@
 					TCU_FAIL("Unknown primitive mode");
 				}
 
+				CullDistance::Utilities::replaceAll(
+						shader_source,
+						std::string("TEMPLATE_EXTENSIONS"),
+						std::string("#extension GL_ARB_tessellation_shader: require"));
 				break;
 			}
 
@@ -1532,6 +1540,10 @@
 					TCU_FAIL("Unknown primitive mode");
 				}
 
+				CullDistance::Utilities::replaceAll(
+						shader_source,
+						std::string("TEMPLATE_EXTENSIONS"),
+						std::string("#extension GL_ARB_tessellation_shader: require"));
 				break;
 			}
 
@@ -1559,6 +1571,12 @@
 				TCU_FAIL("Unknown shader type");
 			}
 
+			/* Clear out in case no specific exts were needed */
+			CullDistance::Utilities::replaceAll(
+					shader_source,
+					std::string("TEMPLATE_EXTENSIONS"),
+					std::string(""));
+
 			/* Adjust clipdistances declaration */
 			if (redeclare_clipdistances && clipdistances_array_size > 0)
 			{
diff --git a/external/openglcts/modules/gl/gl3cGPUShader5Tests.cpp b/external/openglcts/modules/gl/gl3cGPUShader5Tests.cpp
index 2b90bc0..524e6fb 100644
--- a/external/openglcts/modules/gl/gl3cGPUShader5Tests.cpp
+++ b/external/openglcts/modules/gl/gl3cGPUShader5Tests.cpp
@@ -425,6 +425,11 @@
 	};
 	static const size_t n_test_cases = sizeof(test_cases) / sizeof(test_cases[0]);
 
+	if (!m_context.getContextInfo().isExtensionSupported("GL_ARB_gpu_shader5"))
+	{
+		throw tcu::NotSupportedError("GL_ARB_gpu_shader5 is not supported.");
+	}
+
 	testInit();
 
 	/* Execute test cases */
@@ -729,6 +734,11 @@
 	static const glw::GLuint u2_data_1[4] = { 0xffff0000, 0x0000ffff, 0x00ffffff, 0xffffffff };
 	static const glw::GLuint u2_data_2[4] = { 0xfff70000, 0x00007fff, 0x007fffff, 0xfffffff7 };
 
+	if (!m_context.getContextInfo().isExtensionSupported("GL_ARB_gpu_shader5"))
+	{
+		throw tcu::NotSupportedError("GL_ARB_gpu_shader5 is not supported.");
+	}
+
 	testInit();
 
 	/* Execute test case */
@@ -1017,6 +1027,11 @@
 	};
 	static const size_t n_test_cases = sizeof(test_cases) / sizeof(test_cases[0]);
 
+	if (!m_context.getContextInfo().isExtensionSupported("GL_ARB_gpu_shader5"))
+	{
+		throw tcu::NotSupportedError("GL_ARB_gpu_shader5 is not supported.");
+	}
+
 	testInit();
 
 	/* Execute test case */
diff --git a/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp b/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
index 3801c7d..3ee4b09 100644
--- a/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
+++ b/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
@@ -244,6 +244,18 @@
 
 	if (!isTargetMultisampled(target))
 	{
+		glu::ContextType context_type = m_context.getRenderContext().getType();
+		if (isDepthType(descriptor) && glu::contextSupports(context_type, glu::ApiType::core(3, 1)))
+		{
+			/* 3.1 context may have GL_ARB_compatibility which has
+			 * GL_DEPTH_TEXTURE_MODE set to GL_LUMINANCE by default.
+			 * Set it to GL_RED since we expect depth texture sampling
+			 * to return vec4(depth, 0, 0, 1).
+			 */
+			gl.texParameteri(target, 0x884B, GL_RED);
+			gl.getError();
+		}
+
 		gl.texParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 		gl.texParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
@@ -735,8 +747,6 @@
 		}
 	}
 
-	std::string template_verison = "#version 150";
-
 	/* Preprocessing fragment shader source code. */
 	std::string fragment_shader = s_fragment_shader_template;
 
@@ -1380,7 +1390,7 @@
 
 const glw::GLuint FunctionalTest::s_formats_size = sizeof(s_formats) / sizeof(s_formats[0]);
 
-const glw::GLchar* FunctionalTest::s_vertex_shader_code = "#version 150\n"
+const glw::GLchar* FunctionalTest::s_vertex_shader_code = "#version 140\n"
 														  "\n"
 														  "void main()\n"
 														  "{\n"
@@ -1402,7 +1412,8 @@
 														  "}\n";
 
 const glw::GLchar* FunctionalTest::s_fragment_shader_template =
-	"#version 150\n"
+	"#version 140\n"
+	"#extension GL_ARB_texture_multisample : enable\n"
 	"\n"
 	"out TEMPLATE_TYPE result;\n"
 	"\n"
diff --git a/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp b/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp
index 3189c37..a461ac4 100644
--- a/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp
+++ b/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp
@@ -142,6 +142,7 @@
 	bool is_arb_tf_2		 = m_context.getContextInfo().isExtensionSupported("GL_ARB_transform_feedback2");
 	bool is_arb_tf_3		 = m_context.getContextInfo().isExtensionSupported("GL_ARB_transform_feedback3");
 	bool is_arb_tf_instanced = m_context.getContextInfo().isExtensionSupported("GL_ARB_transform_feedback_instanced");
+	bool is_tessellation = m_context.getContextInfo().isExtensionSupported("GL_ARB_tessellation_shader");
 
 	if (is_ext_tf_1)
 	{
@@ -229,13 +230,16 @@
 			gl, m_context.getTestContext().getLog(), m_geometry_shader, NULL, NULL, s_vertex_shader_without_output,
 			s_fragment_shader, &m_varying_name, 1, GL_INTERLEAVED_ATTRIBS);
 
-		m_program_id_with_tessellation_shaders = gl3cts::TransformFeedback::Utilities::buildProgram(
-			gl, m_context.getTestContext().getLog(), NULL, m_tessellation_control_shader,
-			m_tessellation_evaluation_shader, s_vertex_shader_without_output, s_fragment_shader, &m_varying_name, 1,
-			GL_INTERLEAVED_ATTRIBS);
-
 		is_ok = is_ok && m_program_id_with_input_output && m_program_id_with_output && m_program_id_without_output &&
-				m_program_id_with_geometry_shader && m_program_id_with_tessellation_shaders;
+				m_program_id_with_geometry_shader;
+
+                if (is_at_least_gl_40 || is_tessellation) {
+			m_program_id_with_tessellation_shaders = gl3cts::TransformFeedback::Utilities::buildProgram(
+					gl, m_context.getTestContext().getLog(), NULL, m_tessellation_control_shader,
+					m_tessellation_evaluation_shader, s_vertex_shader_without_output, s_fragment_shader, &m_varying_name, 1,
+					GL_INTERLEAVED_ATTRIBS);
+			is_ok = is_ok && m_program_id_with_tessellation_shaders;
+		}
 	}
 	catch (...)
 	{
@@ -1357,6 +1361,11 @@
 	/* Functions handler */
 	const glw::Functions& gl = m_context.getRenderContext().getFunctions();
 
+	bool is_at_least_gl_40 = (glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::core(4, 0)));
+	bool is_tessellation = m_context.getContextInfo().isExtensionSupported("GL_ARB_tessellation_shader");
+
+	bool has_patches = is_at_least_gl_40 || is_tessellation;
+
 	/*  INVALID_ENUM is generated by DrawTransformFeedbackInstanced and
 	 DrawTransformFeedbackStreamInstanced if <mode> is invalid */
 
@@ -1374,7 +1383,7 @@
 									  GL_PATCHES };
 
 	std::set<glw::GLenum> supported_mode(_supported_mode,
-										 _supported_mode + sizeof(_supported_mode) / sizeof(_supported_mode[0]));
+										 _supported_mode + sizeof(_supported_mode) / sizeof(_supported_mode[0]) - (has_patches ? 0 : 1));
 
 	int mode = 0;
 
@@ -1459,6 +1468,13 @@
 		return false;
 	}
 
+	/* All of the below tests concern themselves with GL_PATCHES and
+	 * tessellation shaders */
+	if (!has_patches)
+	{
+		return true;
+	}
+
 	/*  INVALID_OPERATION is generated by DrawTransformFeedbackInstanced and
 	 DrawTransformFeedbackStreamInstanced if <mode> does not match tessellation */
 
diff --git a/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp b/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp
index d885e90..0c02d82 100644
--- a/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp
+++ b/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp
@@ -3118,6 +3118,8 @@
 		TessellationControlSource("#version 450\n"
 								  "\n"
 								  "layout (vertices = 3) out;\n"
+								  "layout (location = 3) in vec2 texCoordIn[];\n"
+								  "layout (location = 3) out vec2 texCoordOut[];\n"
 								  "\n"
 								  "void main()\n"
 								  "{\n"
@@ -3130,6 +3132,7 @@
 								  "\n"
 								  "    gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
 								  "    gl_out[gl_InvocationID].gl_PointSize = gl_in[gl_InvocationID].gl_PointSize;\n"
+								  "    texCoordOut[gl_InvocationID] = texCoordIn[gl_InvocationID];\n"
 								  "}\n");
 
 	tessCtrlStage.caps.push_back("Tessellation Shader");
@@ -3139,12 +3142,15 @@
 	tessEvalStage.source = TessellationEvaluationSource("#version 450\n"
 														"\n"
 														"layout (triangles) in;\n"
+														"layout (location = 3) in vec2 texCoordIn[];\n"
+														"layout (location = 3) out vec2 texCoordOut;\n"
 														"\n"
 														"void main()\n"
 														"{\n"
 														"    gl_Position = gl_TessCoord.x * gl_in[0].gl_Position +\n"
 														"                  gl_TessCoord.y * gl_in[1].gl_Position +\n"
 														"                  gl_TessCoord.z * gl_in[2].gl_Position;\n"
+														"    texCoordOut = texCoordIn[0];\n"
 														"}\n");
 
 	ShaderStage geometryStage;
@@ -3152,6 +3158,8 @@
 										  "\n"
 										  "layout (triangles) in;\n"
 										  "layout (triangle_strip, max_vertices = 3) out;\n"
+										  "layout (location = 3) in vec2 texCoordIn[];\n"
+										  "layout (location = 3) out vec2 texCoordOut;\n"
 										  "\n"
 										  "void main()\n"
 										  "{\n"
@@ -3159,6 +3167,7 @@
 										  "    for (int i = 0; i < 3; ++i) {\n"
 										  "        gl_Position = gl_in[i].gl_Position;\n"
 										  "        gl_PointSize = gl_in[i].gl_PointSize;\n"
+										  "        texCoordOut = texCoordIn[i];\n"
 										  "        EmitStreamVertex(0);\n"
 										  "    }\n"
 										  "    EndStreamPrimitive(0);\n"
diff --git a/external/openglcts/modules/gl/gl4cPipelineStatisticsQueryTests.cpp b/external/openglcts/modules/gl/gl4cPipelineStatisticsQueryTests.cpp
index d7d0ea2..5887476 100644
--- a/external/openglcts/modules/gl/gl4cPipelineStatisticsQueryTests.cpp
+++ b/external/openglcts/modules/gl/gl4cPipelineStatisticsQueryTests.cpp
@@ -444,7 +444,7 @@
 		{
 			gl.bindBuffer(GL_QUERY_BUFFER, qo_bo_id);
 		}
-		else
+		else if (qo_bo_id != 0)
 		{
 			gl.bindBuffer(GL_QUERY_BUFFER, 0 /* buffer */);
 		}
@@ -2067,6 +2067,7 @@
 	unsigned int indirect_draw_bo_first_argument, unsigned int indirect_draw_bo_basevertex_argument)
 {
 	const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+	glu::ContextType contextType = m_context.getRenderContext().getType();
 
 	/* If we already have initialized a VBO, delete it before we continue */
 	if (m_vbo_id != 0)
@@ -2119,7 +2120,11 @@
 	GLU_EXPECT_NO_ERROR(gl.getError(), "glGenBuffers() call failed.");
 
 	gl.bindBuffer(GL_ARRAY_BUFFER, m_vbo_id);
-	gl.bindBuffer(GL_DRAW_INDIRECT_BUFFER, m_vbo_id);
+	if (glu::contextSupports(contextType, glu::ApiType::core(4, 0)) ||
+	    m_context.getContextInfo().isExtensionSupported("GL_ARB_draw_indirect"))
+	{
+		gl.bindBuffer(GL_DRAW_INDIRECT_BUFFER, m_vbo_id);
+	}
 	gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_vbo_id);
 	GLU_EXPECT_NO_ERROR(gl.getError(), "glBindBuffer() call(s) failed.");
 
@@ -2171,6 +2176,12 @@
 	{
 		glw::GLenum current_query_target = PipelineStatisticsQueryUtilities::query_targets[n_query_target];
 
+		/* Make sure the query is supported */
+		if (!PipelineStatisticsQueryUtilities::isQuerySupported(current_query_target, m_context.getContextInfo(), m_context.getRenderContext()))
+		{
+			continue;
+		}
+
 		if (shouldExecuteForQueryTarget(current_query_target))
 		{
 			/* Initialize the query object */
@@ -2433,7 +2444,7 @@
 		const glw::GLuint64 expected_value = 0;
 
 		result &= PipelineStatisticsQueryUtilities::verifyResultValues(
-			run_result, 1, &expected_value, m_qo_id != 0, /* should_check_qo_bo_values */
+			run_result, 1, &expected_value, m_bo_qo_id != 0, /* should_check_qo_bo_values */
 			current_query_target, DE_NULL, DE_NULL,
 			false, /* is_primitive_restart_enabled */
 			m_testCtx, PipelineStatisticsQueryUtilities::VERIFICATION_TYPE_EXACT_MATCH);
@@ -2864,7 +2875,7 @@
 				bool				has_passed	 = true;
 
 				has_passed = PipelineStatisticsQueryUtilities::verifyResultValues(
-					run_result, 1, &expected_value, m_qo_id != 0,  /* should_check_qo_bo_values */
+					run_result, 1, &expected_value, m_bo_qo_id != 0,  /* should_check_qo_bo_values */
 					current_query_target, DE_NULL, DE_NULL, false, /* is_primitive_restart_enabled */
 					m_testCtx, PipelineStatisticsQueryUtilities::VERIFICATION_TYPE_EXACT_MATCH);
 
@@ -3102,7 +3113,7 @@
 					}
 
 					result &= PipelineStatisticsQueryUtilities::verifyResultValues(
-						run_result, n_expected_values, expected_values, m_qo_id != 0, /* should_check_qo_bo_values */
+						run_result, n_expected_values, expected_values, m_bo_qo_id != 0, /* should_check_qo_bo_values */
 						current_query_target, &m_current_draw_call_type, &m_current_primitive_type,
 						m_is_primitive_restart_enabled, m_testCtx, verification_type);
 
@@ -3638,7 +3649,7 @@
 
 					/* Compare it against query result values */
 					result &= PipelineStatisticsQueryUtilities::verifyResultValues(
-						run_result, 1, &expected_value, m_qo_id != 0, /* should_check_qo_bo_values */
+						run_result, 1, &expected_value, m_bo_qo_id != 0, /* should_check_qo_bo_values */
 						current_query_target, &m_current_draw_call_type, &m_current_primitive_type,
 						false, /* is_primitive_restart_enabled */
 						m_testCtx, PipelineStatisticsQueryUtilities::VERIFICATION_TYPE_EQUAL_OR_GREATER);
@@ -3776,7 +3787,7 @@
 
 			/* Compare it against query result values */
 			result &= PipelineStatisticsQueryUtilities::verifyResultValues(
-				run_result, 1, &expected_value, m_qo_id != 0, /* should_check_qo_bo_values */
+				run_result, 1, &expected_value, m_bo_qo_id != 0, /* should_check_qo_bo_values */
 				current_query_target, &m_current_draw_call_type, &m_current_primitive_type,
 				false, /* is_primitive_restart_enabled */
 				m_testCtx, PipelineStatisticsQueryUtilities::VERIFICATION_TYPE_EQUAL_OR_GREATER);
@@ -3917,8 +3928,9 @@
 			 *
 			 * For GL_GEOMETRY_SHADER_INVOCATIONS, we only need a single iteration.
 			 **/
+			const bool streams_supported = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::core(4, 0));
 			const unsigned int n_internal_iterations =
-				(current_query_target == GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB) ? 2 : 1;
+				(current_query_target == GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB && streams_supported) ? 2 : 1;
 
 			for (unsigned int n_internal_iteration = 0; n_internal_iteration < n_internal_iterations;
 				 ++n_internal_iteration)
@@ -4024,7 +4036,7 @@
 						/* Compare it against query result values */
 						result &= PipelineStatisticsQueryUtilities::verifyResultValues(
 							run_result, n_expected_values, expected_values,
-							m_qo_id != 0, /* should_check_qo_bo_values */
+							m_bo_qo_id != 0, /* should_check_qo_bo_values */
 							current_query_target, &m_current_draw_call_type, &m_current_primitive_type,
 							false, /* is_primitive_restart_enabled */
 							m_testCtx, verification_type);
@@ -4187,7 +4199,7 @@
 
 				/* Compare it against query result values */
 				result &= PipelineStatisticsQueryUtilities::verifyResultValues(
-					run_result, 1, &expected_value, m_qo_id != 0, /* should_check_qo_bo_values */
+					run_result, 1, &expected_value, m_bo_qo_id != 0, /* should_check_qo_bo_values */
 					current_query_target, &m_current_draw_call_type, &m_current_primitive_type,
 					false, /* is_primitive_restart_enabled */
 					m_testCtx, PipelineStatisticsQueryUtilities::VERIFICATION_TYPE_EQUAL_OR_GREATER);
@@ -4297,7 +4309,7 @@
 
 			/* Compare it against query result values */
 			result &= PipelineStatisticsQueryUtilities::verifyResultValues(
-				run_result, 1, &expected_value, m_qo_id != 0,  /* should_check_qo_bo_values */
+				run_result, 1, &expected_value, m_bo_qo_id != 0,  /* should_check_qo_bo_values */
 				current_query_target, DE_NULL, DE_NULL, false, /* is_primitive_restart_enabled */
 				m_testCtx, PipelineStatisticsQueryUtilities::VERIFICATION_TYPE_EQUAL_OR_GREATER);
 		} /* if (run results were obtained successfully) */
@@ -4311,6 +4323,13 @@
 {
 	const glw::Functions& gl = m_context.getRenderContext().getFunctions();
 
+	/* This test should not execute if we don't have compute shaders */
+	if (!glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::core(4, 3)) &&
+	    !m_context.getContextInfo().isExtensionSupported("GL_ARB_compute_shader"))
+	{
+		throw tcu::NotSupportedError("OpenGL 4.3+ / compute shaders required to run this test.");
+	}
+
 	buildProgram(PipelineStatisticsQueryUtilities::dummy_cs_code, DE_NULL, /* fs_body */
 				 DE_NULL,												   /* gs_body */
 				 DE_NULL,												   /* tc_body */
diff --git a/external/openglcts/modules/gles31/es31cShaderImageLoadStoreTests.cpp b/external/openglcts/modules/gles31/es31cShaderImageLoadStoreTests.cpp
index da55550..2624491 100644
--- a/external/openglcts/modules/gles31/es31cShaderImageLoadStoreTests.cpp
+++ b/external/openglcts/modules/gles31/es31cShaderImageLoadStoreTests.cpp
@@ -521,10 +521,10 @@
 
 	bool CheckMax(GLenum pname, GLint min_value)
 	{
-		GLboolean b;
-		GLint	 i;
-		GLfloat   f;
-		GLint64   i64;
+		GLboolean	b;
+		GLint		i;
+		GLfloat		f;
+		GLint64		i64;
 
 		glGetIntegerv(pname, &i);
 		if (i < min_value)
@@ -535,11 +535,11 @@
 			return false;
 
 		glGetFloatv(pname, &f);
-		if (static_cast<GLint>(f) < min_value)
+		if (f < static_cast<GLfloat>(min_value))
 			return false;
 
 		glGetInteger64v(pname, &i64);
-		if (static_cast<GLint>(i64) < min_value)
+		if (i64 < static_cast<GLint64>(min_value))
 			return false;
 
 		return true;
diff --git a/external/openglcts/modules/gles31/es31cShaderStorageBufferObjectTests.cpp b/external/openglcts/modules/gles31/es31cShaderStorageBufferObjectTests.cpp
index 9b5ecea..0edb688 100644
--- a/external/openglcts/modules/gles31/es31cShaderStorageBufferObjectTests.cpp
+++ b/external/openglcts/modules/gles31/es31cShaderStorageBufferObjectTests.cpp
@@ -21,6 +21,7 @@
  * \brief
  */ /*-------------------------------------------------------------------*/
 
+#include "deInt32.h"
 #include "es31cShaderStorageBufferObjectTests.hpp"
 #include "glwEnums.hpp"
 #include "tcuMatrix.hpp"
@@ -733,6 +734,9 @@
 		GLint maxShaderStorageBufferBindings = 0;
 		glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, &maxShaderStorageBufferBindings);
 
+		GLint alignment;
+		glGetIntegerv(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, &alignment);
+
 		// check default state
 		if (!Check(GL_SHADER_STORAGE_BUFFER_BINDING, 0))
 			return ERROR;
@@ -772,20 +776,21 @@
 				return ERROR;
 		}
 
+		GLint offset = deRoundUp32(256, alignment);
 		for (GLint i = 0; i < maxShaderStorageBufferBindings; ++i)
 		{
-			glBindBufferRange(GL_SHADER_STORAGE_BUFFER, i, m_buffer[0], 256, 512);
+			glBindBufferRange(GL_SHADER_STORAGE_BUFFER, i, m_buffer[0], offset, 512);
 
 			if (!Check(GL_SHADER_STORAGE_BUFFER_BINDING, m_buffer[0]))
 				return ERROR;
 			if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_BINDING, i, m_buffer[0]))
 				return ERROR;
-			if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_START, i, 256))
+			if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_START, i, offset))
 				return ERROR;
 			if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_SIZE, i, 512))
 				return ERROR;
 
-			glBindBufferRange(GL_SHADER_STORAGE_BUFFER, i, 0, 512, 128);
+			glBindBufferRange(GL_SHADER_STORAGE_BUFFER, i, 0, offset*2, 128);
 
 			if (!Check(GL_SHADER_STORAGE_BUFFER_BINDING, 0))
 				return ERROR;
@@ -828,12 +833,12 @@
 		if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_SIZE, 5, 0))
 			return ERROR;
 
-		glBindBufferRange(GL_SHADER_STORAGE_BUFFER, 7, m_buffer[1], 2048, 1000);
+		glBindBufferRange(GL_SHADER_STORAGE_BUFFER, 7, m_buffer[1], offset * 8, 1000);
 		if (!Check(GL_SHADER_STORAGE_BUFFER_BINDING, m_buffer[1]))
 			return ERROR;
 		if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_BINDING, 7, m_buffer[1]))
 			return ERROR;
-		if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_START, 7, 2048))
+		if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_START, 7, offset * 8))
 			return ERROR;
 		if (!CheckIndexed(GL_SHADER_STORAGE_BUFFER_SIZE, 7, 1000))
 			return ERROR;
@@ -5097,18 +5102,22 @@
 			glBufferData(GL_SHADER_STORAGE_BUFFER, sizeof(data), data, GL_STATIC_DRAW);
 		}
 
+		GLint alignment;
+		glGetIntegerv(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, &alignment);
+		GLint offset = deRoundUp32(sizeof(float) * 32, alignment);
+
 		glBindBuffer(GL_SHADER_STORAGE_BUFFER, m_storage_buffer[4]);
-		glBufferData(GL_SHADER_STORAGE_BUFFER, sizeof(float) * 32 * 4, NULL, GL_STATIC_DRAW);
+		glBufferData(GL_SHADER_STORAGE_BUFFER, offset * 4, NULL, GL_STATIC_DRAW);
 
 		glBindBuffer(GL_COPY_READ_BUFFER, m_storage_buffer[0]);
 		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, 0, sizeof(float) * 32);
 		glBindBuffer(GL_COPY_READ_BUFFER, m_storage_buffer[1]);
-		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, sizeof(float) * 32, sizeof(float) * 32);
+		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, offset, sizeof(float) * 32);
 		glBindBuffer(GL_COPY_READ_BUFFER, m_storage_buffer[2]);
-		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, 2 * sizeof(float) * 32,
+		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, 2 * offset,
 							sizeof(float) * 32);
 		glBindBuffer(GL_COPY_READ_BUFFER, m_storage_buffer[3]);
-		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, 3 * sizeof(float) * 32,
+		glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_SHADER_STORAGE_BUFFER, 0, 3 * offset,
 							sizeof(float) * 32);
 
 		glBindTexture(GL_TEXTURE_2D, m_rt);
@@ -5139,7 +5148,7 @@
 		glClear(GL_COLOR_BUFFER_BIT);
 		for (int i = 0; i < 4; ++i)
 		{
-			glBindBufferRange(GL_SHADER_STORAGE_BUFFER, 0, m_storage_buffer[4], i * sizeof(float) * 32,
+			glBindBufferRange(GL_SHADER_STORAGE_BUFFER, 0, m_storage_buffer[4], i * offset,
 							  sizeof(float) * 32);
 			glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, 1);
 		}
@@ -5206,7 +5215,7 @@
 
 		GLint alignment;
 		glGetIntegerv(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, &alignment);
-		GLint offset = static_cast<GLint>(sizeof(data0) > (GLuint)alignment ? sizeof(data0) : alignment);
+		GLint offset = deRoundUp32(sizeof(data0), alignment);
 		glBindBuffer(GL_SHADER_STORAGE_BUFFER, m_storage_buffer[4]);
 		glBufferData(GL_SHADER_STORAGE_BUFFER, offset * 4, NULL, GL_STATIC_DRAW);
 
diff --git a/external/vulkancts/README.md b/external/vulkancts/README.md
index 694b0fd..b1f120a 100644
--- a/external/vulkancts/README.md
+++ b/external/vulkancts/README.md
@@ -253,7 +253,7 @@
 If the submission package covers multiple products, you can list them by appending
 additional `PRODUCT:` lines to the conformance statement. For example:
 
-	CONFORM_VERSION:         vulkan-cts-1.2.1.0
+	CONFORM_VERSION:         vulkan-cts-1.2.2.0
 	PRODUCT:                 Product A
 	PRODUCT:                 Product B
 	...
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/always-discarding-function.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/always-discarding-function.amber
new file mode 100644
index 0000000..58de15a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/always-discarding-function.amber
@@ -0,0 +1,382 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with an always discarding main function
+
+# The test passes because: the framebuffer is cleared to black,
+#         the fragment shader always discards,
+#         and we check that the framebuffer is still black.
+
+# Optimized using spirv-opt with the following arguments:
+# '--private-to-local'
+# '--reduce-load-size'
+# '--eliminate-dead-code-aggressive'
+# '--eliminate-local-multi-store'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--private-to-local'
+# '--combine-access-chains'
+# '--eliminate-dead-branches'
+# '--eliminate-dead-branches'
+# '--inline-entry-points-exhaustive'
+# '--scalar-replacement=100'
+# '--if-conversion'
+# '--combine-access-chains'
+# '--vector-dce'
+# '--vector-dce'
+# '--combine-access-chains'
+# '--reduce-load-size'
+# '--redundancy-elimination'
+# '--eliminate-local-multi-store'
+# '--vector-dce'
+# '--vector-dce'
+# spirv-opt commit hash: e82a428605f6ce0a07337b36f8ba3935c9f165ac
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   vec2 injectionSwitch;
+# };
+#
+# struct tmp_struct
+# {
+#   int nmb[1];
+# };
+#
+# int binarySearch(tmp_struct obj)
+# {
+#   int one = 1;
+#
+#   while (one > 10)
+#   {
+#     int zero = one - 1;
+#
+#     if (obj.nmb[zero] == 1)
+#       return 1;
+#
+#     one = zero;
+#   }
+#
+#   return -1;
+# }
+#
+# void main()
+# {
+#   tmp_struct obj;
+#   float tmp_float = injectionSwitch.y;
+#   vec3 color = vec3(tmp_float);
+#
+#   if (binarySearch(obj) == -1) // Always true
+#   {
+#     discard;
+#   }
+#   else
+#   {
+#     _GLF_color = vec4(0.0, 0.0, 0.0, 0.0);
+#     color.yz += vec2(1.0);
+#     if (injectionSwitch.x > 1.0)
+#     {
+#       return;
+#     }
+#   }
+#   _GLF_color = vec4(color, 1.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 159
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %69
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "tmp_struct"
+               OpMemberName %10 0 "nmb"
+               OpName %14 "binarySearch(struct-tmp_struct-i1[1]1;"
+               OpName %13 "obj"
+               OpName %17 "one"
+               OpName %28 "zero"
+               OpName %45 "tmp_float"
+               OpName %47 "buf0"
+               OpMemberName %47 0 "injectionSwitch"
+               OpName %49 ""
+               OpName %55 "color"
+               OpName %69 "_GLF_color"
+               OpMemberDecorate %10 0 RelaxedPrecision
+               OpDecorate %14 RelaxedPrecision
+               OpDecorate %17 RelaxedPrecision
+               OpDecorate %28 RelaxedPrecision
+               OpDecorate %30 RelaxedPrecision
+               OpDecorate %34 RelaxedPrecision
+               OpMemberDecorate %47 0 Offset 0
+               OpDecorate %47 Block
+               OpDecorate %49 DescriptorSet 0
+               OpDecorate %49 Binding 0
+               OpDecorate %69 Location 0
+               OpDecorate %92 RelaxedPrecision
+               OpDecorate %102 RelaxedPrecision
+               OpDecorate %111 RelaxedPrecision
+               OpDecorate %112 RelaxedPrecision
+               OpDecorate %113 RelaxedPrecision
+               OpDecorate %114 RelaxedPrecision
+               OpDecorate %122 RelaxedPrecision
+               OpDecorate %120 RelaxedPrecision
+               OpDecorate %128 RelaxedPrecision
+               OpDecorate %137 RelaxedPrecision
+               OpDecorate %144 RelaxedPrecision
+               OpDecorate %143 RelaxedPrecision
+               OpDecorate %154 RelaxedPrecision
+               OpDecorate %153 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 1
+          %9 = OpTypeArray %6 %8
+         %10 = OpTypeStruct %9
+         %11 = OpTypePointer Function %10
+         %12 = OpTypeFunction %6 %11
+         %16 = OpTypePointer Function %6
+         %18 = OpConstant %6 1
+         %25 = OpConstant %6 10
+         %26 = OpTypeBool
+         %31 = OpConstant %6 0
+         %40 = OpConstant %6 -1
+         %43 = OpTypeFloat 32
+         %44 = OpTypePointer Function %43
+         %46 = OpTypeVector %43 2
+         %47 = OpTypeStruct %46
+         %48 = OpTypePointer Uniform %47
+         %49 = OpVariable %48 Uniform
+         %50 = OpTypePointer Uniform %43
+         %53 = OpTypeVector %43 3
+         %54 = OpTypePointer Function %53
+         %67 = OpTypeVector %43 4
+         %68 = OpTypePointer Output %67
+         %69 = OpVariable %68 Output
+         %70 = OpConstant %43 0
+         %71 = OpConstantComposite %67 %70 %70 %70 %70
+         %72 = OpConstant %43 1
+         %73 = OpConstantComposite %46 %72 %72
+         %79 = OpConstant %7 0
+         %91 = OpUndef %10
+         %97 = OpConstantFalse %26
+         %98 = OpTypePointer Function %26
+        %100 = OpConstantTrue %26
+        %135 = OpConstantNull %9
+        %136 = OpTypePointer Function %9
+        %148 = OpUndef %6
+        %149 = OpUndef %26
+        %157 = OpUndef %6
+        %158 = OpUndef %26
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %137 = OpVariable %136 Function
+        %110 = OpVariable %98 Function %97
+        %111 = OpVariable %16 Function
+        %112 = OpVariable %16 Function
+        %113 = OpVariable %16 Function
+        %114 = OpVariable %16 Function
+         %99 = OpVariable %98 Function %97
+         %45 = OpVariable %44 Function
+         %55 = OpVariable %54 Function
+               OpBranch %94
+         %94 = OpLabel
+               OpLoopMerge %93 %96 None
+               OpBranch %95
+         %95 = OpLabel
+         %51 = OpAccessChain %50 %49 %31 %8
+         %52 = OpLoad %43 %51
+               OpStore %45 %52
+         %57 = OpCompositeConstruct %53 %52 %52 %52
+               OpStore %55 %57
+        %138 = OpCompositeExtract %9 %91 0
+               OpStore %137 %138
+               OpStore %110 %97
+               OpBranch %115
+        %115 = OpLabel
+        %142 = OpPhi %26 %97 %95 %149 %117
+               OpLoopMerge %116 %117 None
+               OpBranch %118
+        %118 = OpLabel
+               OpStore %112 %18
+               OpBranch %119
+        %119 = OpLabel
+        %122 = OpPhi %6 %18 %118 %120 %121
+               OpLoopMerge %123 %121 None
+               OpBranch %124
+        %124 = OpLabel
+        %125 = OpSGreaterThan %26 %122 %25
+               OpBranchConditional %125 %126 %123
+        %126 = OpLabel
+        %120 = OpISub %6 %122 %18
+               OpStore %113 %120
+        %139 = OpAccessChain %16 %137 %120
+        %128 = OpLoad %6 %139
+        %129 = OpIEqual %26 %128 %18
+               OpSelectionMerge %130 None
+               OpBranchConditional %129 %131 %130
+        %131 = OpLabel
+               OpStore %110 %100
+               OpStore %111 %18
+               OpBranch %123
+        %130 = OpLabel
+               OpStore %112 %120
+               OpBranch %121
+        %121 = OpLabel
+               OpBranch %119
+        %123 = OpLabel
+        %144 = OpPhi %6 %148 %124 %18 %131
+        %140 = OpPhi %26 %142 %124 %100 %131
+               OpSelectionMerge %133 None
+               OpBranchConditional %140 %116 %133
+        %133 = OpLabel
+               OpStore %110 %100
+               OpStore %111 %40
+               OpBranch %116
+        %117 = OpLabel
+               OpBranch %115
+        %116 = OpLabel
+        %143 = OpPhi %6 %144 %123 %40 %133
+               OpStore %114 %143
+         %62 = OpIEqual %26 %143 %40
+               OpSelectionMerge %64 None
+               OpBranchConditional %62 %63 %66
+         %63 = OpLabel
+               OpKill
+         %66 = OpLabel
+               OpStore %69 %71
+         %75 = OpVectorShuffle %46 %57 %57 1 2
+         %76 = OpFAdd %46 %75 %73
+         %78 = OpVectorShuffle %53 %57 %76 0 3 4
+               OpStore %55 %78
+         %80 = OpAccessChain %50 %49 %31 %79
+         %81 = OpLoad %43 %80
+         %82 = OpFOrdGreaterThan %26 %81 %72
+               OpSelectionMerge %84 None
+               OpBranchConditional %82 %83 %84
+         %83 = OpLabel
+               OpStore %99 %100
+               OpBranch %93
+         %84 = OpLabel
+               OpBranch %64
+         %64 = OpLabel
+         %87 = OpCompositeExtract %43 %78 0
+         %88 = OpCompositeExtract %43 %78 1
+         %89 = OpCompositeExtract %43 %78 2
+         %90 = OpCompositeConstruct %67 %87 %88 %89 %72
+               OpStore %69 %90
+               OpStore %99 %100
+               OpBranch %93
+         %96 = OpLabel
+               OpBranch %94
+         %93 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %14 = OpFunction %6 None %12
+         %13 = OpFunctionParameter %11
+         %15 = OpLabel
+        %107 = OpVariable %98 Function %97
+        %102 = OpVariable %16 Function
+         %17 = OpVariable %16 Function
+         %28 = OpVariable %16 Function
+               OpBranch %104
+        %104 = OpLabel
+        %152 = OpPhi %26 %97 %15 %158 %106
+               OpLoopMerge %101 %106 None
+               OpBranch %105
+        %105 = OpLabel
+               OpStore %17 %18
+               OpBranch %19
+         %19 = OpLabel
+         %92 = OpPhi %6 %18 %105 %30 %22
+               OpLoopMerge %21 %22 None
+               OpBranch %23
+         %23 = OpLabel
+         %27 = OpSGreaterThan %26 %92 %25
+               OpBranchConditional %27 %20 %21
+         %20 = OpLabel
+         %30 = OpISub %6 %92 %18
+               OpStore %28 %30
+         %33 = OpAccessChain %16 %13 %31 %30
+         %34 = OpLoad %6 %33
+         %35 = OpIEqual %26 %34 %18
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %37
+         %36 = OpLabel
+               OpStore %107 %100
+               OpStore %102 %18
+               OpBranch %21
+         %37 = OpLabel
+               OpStore %17 %30
+               OpBranch %22
+         %22 = OpLabel
+               OpBranch %19
+         %21 = OpLabel
+        %154 = OpPhi %6 %157 %23 %18 %36
+        %150 = OpPhi %26 %152 %23 %100 %36
+               OpSelectionMerge %108 None
+               OpBranchConditional %150 %101 %108
+        %108 = OpLabel
+               OpStore %107 %100
+               OpStore %102 %40
+               OpBranch %101
+        %106 = OpLabel
+               OpBranch %104
+        %101 = OpLabel
+        %153 = OpPhi %6 %154 %21 %40 %108
+               OpReturnValue %153
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 0 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/call-function-with-discard.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/call-function-with-discard.amber
new file mode 100644
index 0000000..84586df
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/call-function-with-discard.amber
@@ -0,0 +1,163 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: Calls a function containing a discard
+
+# The test passes because main always writes the color red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--eliminate-local-single-block'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--ccp'
+# '--scalar-replacement=100'
+# '--eliminate-local-single-block'
+# '--simplify-instructions'
+# '--redundancy-elimination'
+# '--eliminate-local-multi-store'
+# '--private-to-local'
+# '--if-conversion'
+# '--private-to-local'
+# spirv-opt commit hash: 18b3b94567a9251a6f8491a6d07c4422abadd22c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void func()
+# {
+#     if (1.0 > one) // Always false
+#     {
+#         discard;
+#     }
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#     do
+#     {
+#         func();
+#     } while (false);
+#     _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %25
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %6 "func("
+               OpName %10 "buf0"
+               OpMemberName %10 0 "one"
+               OpName %12 ""
+               OpName %25 "_GLF_color"
+               OpMemberDecorate %10 0 Offset 0
+               OpDecorate %10 Block
+               OpDecorate %12 DescriptorSet 0
+               OpDecorate %12 Binding 0
+               OpDecorate %25 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %8 = OpTypeFloat 32
+          %9 = OpConstant %8 1
+         %10 = OpTypeStruct %8
+         %11 = OpTypePointer Uniform %10
+         %12 = OpVariable %11 Uniform
+         %13 = OpTypeInt 32 1
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Uniform %8
+         %18 = OpTypeBool
+         %23 = OpTypeVector %8 4
+         %24 = OpTypePointer Output %23
+         %25 = OpVariable %24 Output
+         %26 = OpConstant %8 0
+         %27 = OpConstantComposite %23 %26 %26 %26 %26
+         %33 = OpConstantFalse %18
+         %34 = OpConstantComposite %23 %9 %26 %26 %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpStore %25 %27
+               OpBranch %28
+         %28 = OpLabel
+         %32 = OpFunctionCall %2 %6
+               OpLoopMerge %30 %28 None
+               OpBranchConditional %33 %28 %30
+         %30 = OpLabel
+               OpStore %25 %34
+               OpReturn
+               OpFunctionEnd
+          %6 = OpFunction %2 None %3
+          %7 = OpLabel
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %8 %16
+         %19 = OpFOrdGreaterThan %18 %9 %17
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %21
+         %20 = OpLabel
+               OpKill
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/color-set-in-for-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/color-set-in-for-loop.amber
new file mode 100644
index 0000000..fe74d87
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/color-set-in-for-loop.amber
@@ -0,0 +1,153 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with color set in for loop
+
+# The test passes because main always writes the color red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--wrap-opkill'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-functions'
+# '--private-to-local'
+# '--scalar-replacement=0'
+# '--ssa-rewrite'
+# '--ccp'
+# spirv-opt commit hash: 18b3b94567a9251a6f8491a6d07c4422abadd22c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   vec2 injectionSwitch;
+# };
+#
+# void main()
+# {
+#   if (injectionSwitch.x > 1.0) // Always false
+#   {
+#     for (mat4 tmp1; true;)
+#     {
+#       _GLF_color = vec4(0, 0, 0, 1);
+#     }
+#   }
+#   _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %31
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "injectionSwitch"
+               OpName %10 ""
+               OpName %31 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %31 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypeStruct %7
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpTypeInt 32 1
+         %12 = OpConstant %11 0
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Uniform %6
+         %18 = OpConstant %6 1
+         %19 = OpTypeBool
+         %28 = OpConstantTrue %19
+         %29 = OpTypeVector %6 4
+         %30 = OpTypePointer Output %29
+         %31 = OpVariable %30 Output
+         %32 = OpConstant %6 0
+         %33 = OpConstantComposite %29 %32 %32 %32 %18
+         %34 = OpConstantComposite %29 %18 %32 %32 %18
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %16 = OpAccessChain %15 %10 %12 %14
+         %17 = OpLoad %6 %16
+         %20 = OpFOrdGreaterThan %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %22
+         %21 = OpLabel
+               OpBranch %23
+         %23 = OpLabel
+               OpLoopMerge %25 %26 None
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %24
+         %24 = OpLabel
+               OpStore %31 %33
+               OpBranch %26
+         %26 = OpLabel
+               OpBranch %23
+         %25 = OpLabel
+               OpUnreachable
+         %22 = OpLabel
+               OpStore %31 %34
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-determinant.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-determinant.amber
new file mode 100644
index 0000000..669656d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-determinant.amber
@@ -0,0 +1,169 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific arbitrary precision float usage.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#
+#     float det1 = determinant(mat4(0, 1,  0, 1,
+#                                   1, 1,  1, 2,
+#                                   1, 4,  6, 1,
+#                                   5, 35, 7, 63));
+#
+#     float det2 = determinant(mat3(1,  0, 1,
+#                                   4,  6, 1,
+#                                   35, 7, 63));
+#
+#     float det3 = determinant(mat3(1, 0, 1,
+#                                   1, 1, 2,
+#                                   35, 7, 63));
+#
+#     float det4 = determinant(mat3(1, 0, 1,
+#                                   1, 1, 2,
+#                                   4, 6, 1));
+#
+#     float ref = -det2 + det3 - 5.0 * det4;
+#
+#     if (abs(ref - det1) < 0.1) // Always true.
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 63
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %59
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "det1"
+               OpName %26 "det2"
+               OpName %34 "det3"
+               OpName %38 "det4"
+               OpName %41 "ref"
+               OpName %59 "_GLF_color"
+               OpDecorate %59 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeVector %6 4
+         %10 = OpTypeMatrix %9 4
+         %11 = OpConstant %6 0
+         %12 = OpConstant %6 1
+         %13 = OpConstantComposite %9 %11 %12 %11 %12
+         %14 = OpConstant %6 2
+         %15 = OpConstantComposite %9 %12 %12 %12 %14
+         %16 = OpConstant %6 4
+         %17 = OpConstant %6 6
+         %18 = OpConstantComposite %9 %12 %16 %17 %12
+         %19 = OpConstant %6 5
+         %20 = OpConstant %6 35
+         %21 = OpConstant %6 7
+         %22 = OpConstant %6 63
+         %23 = OpConstantComposite %9 %19 %20 %21 %22
+         %24 = OpConstantComposite %10 %13 %15 %18 %23
+         %27 = OpTypeVector %6 3
+         %28 = OpTypeMatrix %27 3
+         %29 = OpConstantComposite %27 %12 %11 %12
+         %30 = OpConstantComposite %27 %16 %17 %12
+         %31 = OpConstantComposite %27 %20 %21 %22
+         %32 = OpConstantComposite %28 %29 %30 %31
+         %35 = OpConstantComposite %27 %12 %12 %14
+         %36 = OpConstantComposite %28 %29 %35 %31
+         %39 = OpConstantComposite %28 %29 %35 %30
+         %53 = OpConstant %6 0.100000001
+         %54 = OpTypeBool
+         %58 = OpTypePointer Output %9
+         %59 = OpVariable %58 Output
+         %60 = OpConstantComposite %9 %12 %11 %11 %12
+         %62 = OpConstantComposite %9 %11 %11 %11 %11
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %26 = OpVariable %7 Function
+         %34 = OpVariable %7 Function
+         %38 = OpVariable %7 Function
+         %41 = OpVariable %7 Function
+         %25 = OpExtInst %6 %1 Determinant %24
+               OpStore %8 %25
+         %33 = OpExtInst %6 %1 Determinant %32
+               OpStore %26 %33
+         %37 = OpExtInst %6 %1 Determinant %36
+               OpStore %34 %37
+         %40 = OpExtInst %6 %1 Determinant %39
+               OpStore %38 %40
+         %42 = OpLoad %6 %26
+         %43 = OpFNegate %6 %42
+         %44 = OpLoad %6 %34
+         %45 = OpFAdd %6 %43 %44
+         %46 = OpLoad %6 %38
+         %47 = OpFMul %6 %19 %46
+         %48 = OpFSub %6 %45 %47
+               OpStore %41 %48
+         %49 = OpLoad %6 %41
+         %50 = OpLoad %6 %8
+         %51 = OpFSub %6 %49 %50
+         %52 = OpExtInst %6 %1 FAbs %51
+         %55 = OpFOrdLessThan %54 %52 %53
+               OpSelectionMerge %57 None
+               OpBranchConditional %55 %56 %61
+         %56 = OpLabel
+               OpStore %59 %60
+               OpBranch %57
+         %61 = OpLabel
+               OpStore %59 %62
+               OpBranch %57
+         %57 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-tanh.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-tanh.amber
new file mode 100644
index 0000000..49230c7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-tanh.amber
@@ -0,0 +1,136 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific arbitrary precision float usage.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec4 v = vec4(1, 2, 3, 4);
+#     float dist1 = distance(tanh(v), sinh(v) / cosh(v));
+#     float dist2 = distance(tanh(v), vec4(0.76159, 0.96403, 0.99505, 0.99933));
+#
+#     // tanh(v) == sinh(v) / cosh(v). Allow some room for precision errors.
+#     if (dist1 < 0.1 && dist2 < 0.1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 49
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %44
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %16 "dist1"
+               OpName %25 "dist2"
+               OpName %44 "_GLF_color"
+               OpDecorate %44 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstant %6 2
+         %12 = OpConstant %6 3
+         %13 = OpConstant %6 4
+         %14 = OpConstantComposite %7 %10 %11 %12 %13
+         %15 = OpTypePointer Function %6
+         %28 = OpConstant %6 0.761590004
+         %29 = OpConstant %6 0.964030027
+         %30 = OpConstant %6 0.995050013
+         %31 = OpConstant %6 0.999329984
+         %32 = OpConstantComposite %7 %28 %29 %30 %31
+         %35 = OpConstant %6 0.100000001
+         %36 = OpTypeBool
+         %43 = OpTypePointer Output %7
+         %44 = OpVariable %43 Output
+         %45 = OpConstant %6 0
+         %46 = OpConstantComposite %7 %10 %45 %45 %10
+         %48 = OpConstantComposite %7 %45 %45 %45 %45
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %16 = OpVariable %15 Function
+         %25 = OpVariable %15 Function
+               OpStore %9 %14
+         %17 = OpLoad %7 %9
+         %18 = OpExtInst %7 %1 Tanh %17
+         %19 = OpLoad %7 %9
+         %20 = OpExtInst %7 %1 Sinh %19
+         %21 = OpLoad %7 %9
+         %22 = OpExtInst %7 %1 Cosh %21
+         %23 = OpFDiv %7 %20 %22
+         %24 = OpExtInst %6 %1 Distance %18 %23
+               OpStore %16 %24
+         %26 = OpLoad %7 %9
+         %27 = OpExtInst %7 %1 Tanh %26
+         %33 = OpExtInst %6 %1 Distance %27 %32
+               OpStore %25 %33
+         %34 = OpLoad %6 %16
+         %37 = OpFOrdLessThan %36 %34 %35
+         %38 = OpLoad %6 %25
+         %39 = OpFOrdLessThan %36 %38 %35
+         %40 = OpLogicalAnd %36 %37 %39
+               OpSelectionMerge %42 None
+               OpBranchConditional %40 %41 %47
+         %41 = OpLabel
+               OpStore %44 %46
+               OpBranch %42
+         %47 = OpLabel
+               OpStore %44 %48
+               OpBranch %42
+         %42 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-blockfrequency-several-for-loops.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-blockfrequency-several-for-loops.amber
new file mode 100644
index 0000000..440d454
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-blockfrequency-several-for-loops.amber
@@ -0,0 +1,310 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific block frequency info code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec4 c = vec4(0, 0, 0, 1);
+#     int a = 0;
+#
+#     do
+#     {
+#         do
+#         {
+#             // Executed only once with a = 0.
+#             c[a] = 1.0;
+#
+#             for(int i1 = 0; i1 < 1; i1++)
+#                 for(int i2 = 0; i2 < 1; i2++)
+#                     for(int i3 = 0; i3 < 1; i3++)
+#                         for(int i4 = 0; i4 < 1; i4++)
+#                             for(int i5 = 0; i5 < 1; i5++)
+#                                 for(int i6 = 0; i6 < 1; i6++)
+#                                     for(int i7 = 0; i7 < 1; i7++)
+#                                         for(int i8 = 0; i8 < 17; i8++)
+#                                             a++;
+#         }
+#         while(gl_FragCoord.x < -1.0);
+#     } while(gl_FragCoord.y < -1.0);
+#     _GLF_color = c;
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 129
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %114 %127
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "c"
+               OpName %15 "a"
+               OpName %28 "i1"
+               OpName %38 "i2"
+               OpName %46 "i3"
+               OpName %54 "i4"
+               OpName %62 "i5"
+               OpName %70 "i6"
+               OpName %78 "i7"
+               OpName %86 "i8"
+               OpName %114 "gl_FragCoord"
+               OpName %127 "_GLF_color"
+               OpDecorate %114 BuiltIn FragCoord
+               OpDecorate %127 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 0
+         %11 = OpConstant %6 1
+         %12 = OpConstantComposite %7 %10 %10 %10 %11
+         %13 = OpTypeInt 32 1
+         %14 = OpTypePointer Function %13
+         %16 = OpConstant %13 0
+         %26 = OpTypePointer Function %6
+         %35 = OpConstant %13 1
+         %36 = OpTypeBool
+         %93 = OpConstant %13 17
+        %113 = OpTypePointer Input %7
+        %114 = OpVariable %113 Input
+        %115 = OpTypeInt 32 0
+        %116 = OpConstant %115 0
+        %117 = OpTypePointer Input %6
+        %120 = OpConstant %6 -1
+        %122 = OpConstant %115 1
+        %126 = OpTypePointer Output %7
+        %127 = OpVariable %126 Output
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %15 = OpVariable %14 Function
+         %28 = OpVariable %14 Function
+         %38 = OpVariable %14 Function
+         %46 = OpVariable %14 Function
+         %54 = OpVariable %14 Function
+         %62 = OpVariable %14 Function
+         %70 = OpVariable %14 Function
+         %78 = OpVariable %14 Function
+         %86 = OpVariable %14 Function
+               OpStore %9 %12
+               OpStore %15 %16
+               OpBranch %17
+         %17 = OpLabel
+               OpLoopMerge %19 %20 None
+               OpBranch %18
+         %18 = OpLabel
+               OpBranch %21
+         %21 = OpLabel
+               OpLoopMerge %23 %24 None
+               OpBranch %22
+         %22 = OpLabel
+         %25 = OpLoad %13 %15
+         %27 = OpAccessChain %26 %9 %25
+               OpStore %27 %11
+               OpStore %28 %16
+               OpBranch %29
+         %29 = OpLabel
+               OpLoopMerge %31 %32 None
+               OpBranch %33
+         %33 = OpLabel
+         %34 = OpLoad %13 %28
+         %37 = OpSLessThan %36 %34 %35
+               OpBranchConditional %37 %30 %31
+         %30 = OpLabel
+               OpStore %38 %16
+               OpBranch %39
+         %39 = OpLabel
+               OpLoopMerge %41 %42 None
+               OpBranch %43
+         %43 = OpLabel
+         %44 = OpLoad %13 %38
+         %45 = OpSLessThan %36 %44 %35
+               OpBranchConditional %45 %40 %41
+         %40 = OpLabel
+               OpStore %46 %16
+               OpBranch %47
+         %47 = OpLabel
+               OpLoopMerge %49 %50 None
+               OpBranch %51
+         %51 = OpLabel
+         %52 = OpLoad %13 %46
+         %53 = OpSLessThan %36 %52 %35
+               OpBranchConditional %53 %48 %49
+         %48 = OpLabel
+               OpStore %54 %16
+               OpBranch %55
+         %55 = OpLabel
+               OpLoopMerge %57 %58 None
+               OpBranch %59
+         %59 = OpLabel
+         %60 = OpLoad %13 %54
+         %61 = OpSLessThan %36 %60 %35
+               OpBranchConditional %61 %56 %57
+         %56 = OpLabel
+               OpStore %62 %16
+               OpBranch %63
+         %63 = OpLabel
+               OpLoopMerge %65 %66 None
+               OpBranch %67
+         %67 = OpLabel
+         %68 = OpLoad %13 %62
+         %69 = OpSLessThan %36 %68 %35
+               OpBranchConditional %69 %64 %65
+         %64 = OpLabel
+               OpStore %70 %16
+               OpBranch %71
+         %71 = OpLabel
+               OpLoopMerge %73 %74 None
+               OpBranch %75
+         %75 = OpLabel
+         %76 = OpLoad %13 %70
+         %77 = OpSLessThan %36 %76 %35
+               OpBranchConditional %77 %72 %73
+         %72 = OpLabel
+               OpStore %78 %16
+               OpBranch %79
+         %79 = OpLabel
+               OpLoopMerge %81 %82 None
+               OpBranch %83
+         %83 = OpLabel
+         %84 = OpLoad %13 %78
+         %85 = OpSLessThan %36 %84 %35
+               OpBranchConditional %85 %80 %81
+         %80 = OpLabel
+               OpStore %86 %16
+               OpBranch %87
+         %87 = OpLabel
+               OpLoopMerge %89 %90 None
+               OpBranch %91
+         %91 = OpLabel
+         %92 = OpLoad %13 %86
+         %94 = OpSLessThan %36 %92 %93
+               OpBranchConditional %94 %88 %89
+         %88 = OpLabel
+         %95 = OpLoad %13 %15
+         %96 = OpIAdd %13 %95 %35
+               OpStore %15 %96
+               OpBranch %90
+         %90 = OpLabel
+         %97 = OpLoad %13 %86
+         %98 = OpIAdd %13 %97 %35
+               OpStore %86 %98
+               OpBranch %87
+         %89 = OpLabel
+               OpBranch %82
+         %82 = OpLabel
+         %99 = OpLoad %13 %78
+        %100 = OpIAdd %13 %99 %35
+               OpStore %78 %100
+               OpBranch %79
+         %81 = OpLabel
+               OpBranch %74
+         %74 = OpLabel
+        %101 = OpLoad %13 %70
+        %102 = OpIAdd %13 %101 %35
+               OpStore %70 %102
+               OpBranch %71
+         %73 = OpLabel
+               OpBranch %66
+         %66 = OpLabel
+        %103 = OpLoad %13 %62
+        %104 = OpIAdd %13 %103 %35
+               OpStore %62 %104
+               OpBranch %63
+         %65 = OpLabel
+               OpBranch %58
+         %58 = OpLabel
+        %105 = OpLoad %13 %54
+        %106 = OpIAdd %13 %105 %35
+               OpStore %54 %106
+               OpBranch %55
+         %57 = OpLabel
+               OpBranch %50
+         %50 = OpLabel
+        %107 = OpLoad %13 %46
+        %108 = OpIAdd %13 %107 %35
+               OpStore %46 %108
+               OpBranch %47
+         %49 = OpLabel
+               OpBranch %42
+         %42 = OpLabel
+        %109 = OpLoad %13 %38
+        %110 = OpIAdd %13 %109 %35
+               OpStore %38 %110
+               OpBranch %39
+         %41 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+        %111 = OpLoad %13 %28
+        %112 = OpIAdd %13 %111 %35
+               OpStore %28 %112
+               OpBranch %29
+         %31 = OpLabel
+               OpBranch %24
+         %24 = OpLabel
+        %118 = OpAccessChain %117 %114 %116
+        %119 = OpLoad %6 %118
+        %121 = OpFOrdLessThan %36 %119 %120
+               OpBranchConditional %121 %21 %23
+         %23 = OpLabel
+               OpBranch %20
+         %20 = OpLabel
+        %123 = OpAccessChain %117 %114 %122
+        %124 = OpLoad %6 %123
+        %125 = OpFOrdLessThan %36 %124 %120
+               OpBranchConditional %125 %17 %19
+         %19 = OpLabel
+        %128 = OpLoad %7 %9
+               OpStore %127 %128
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-max.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-max.amber
new file mode 100644
index 0000000..b8d364e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-max.amber
@@ -0,0 +1,122 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding rule path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // If condition is always false.
+#     if (
+#         clamp(
+#             vec4(3000.0, 1.0, 8.0, 4.0),
+#             vec4(2.0, 3.0, determinant(mat2(2.0, 0.0, 0.0, 2.0)), 5.0), // min = (2, 3, 4, 5)
+#             vec4(6.0)                                                   // max = (6, 6, 6, 6)
+#             ) != vec4(6, 3, 6, 5)
+#        )
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %35
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %35 "_GLF_color"
+               OpDecorate %35 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpConstant %6 3000
+          %9 = OpConstant %6 1
+         %10 = OpConstant %6 8
+         %11 = OpConstant %6 4
+         %12 = OpConstantComposite %7 %8 %9 %10 %11
+         %13 = OpConstant %6 2
+         %14 = OpConstant %6 3
+         %15 = OpTypeVector %6 2
+         %16 = OpTypeMatrix %15 2
+         %17 = OpConstant %6 0
+         %18 = OpConstantComposite %15 %13 %17
+         %19 = OpConstantComposite %15 %17 %13
+         %20 = OpConstantComposite %16 %18 %19
+         %22 = OpConstant %6 5
+         %24 = OpConstant %6 6
+         %25 = OpConstantComposite %7 %24 %24 %24 %24
+         %27 = OpConstantComposite %7 %24 %14 %24 %22
+         %28 = OpTypeBool
+         %29 = OpTypeVector %28 4
+         %34 = OpTypePointer Output %7
+         %35 = OpVariable %34 Output
+         %36 = OpConstantComposite %7 %17 %17 %17 %17
+         %38 = OpConstantComposite %7 %9 %17 %17 %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %21 = OpExtInst %6 %1 Determinant %20
+         %23 = OpCompositeConstruct %7 %13 %14 %21 %22
+         %26 = OpExtInst %7 %1 FClamp %12 %23 %25
+         %30 = OpFOrdNotEqual %29 %26 %27
+         %31 = OpAny %28 %30
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %37
+         %32 = OpLabel
+               OpStore %35 %36
+               OpBranch %33
+         %37 = OpLabel
+               OpStore %35 %38
+               OpBranch %33
+         %33 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-min.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-min.amber
new file mode 100644
index 0000000..49c53db
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-min.amber
@@ -0,0 +1,133 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding rule path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float zero;
+# };
+#
+# void main()
+# {
+#     if (vec4(clamp(2.0, zero, 1.0), clamp(-1.0, 0.0, zero), 0, 1) != vec4(1, 0, 0, 1))
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "zero"
+               OpName %10 ""
+               OpName %33 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpConstant %6 2
+          %8 = OpTypeStruct %6
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpTypeInt 32 1
+         %12 = OpConstant %11 0
+         %13 = OpTypePointer Uniform %6
+         %16 = OpConstant %6 1
+         %18 = OpConstant %6 -1
+         %19 = OpConstant %6 0
+         %23 = OpTypeVector %6 4
+         %25 = OpConstantComposite %23 %16 %19 %19 %16
+         %26 = OpTypeBool
+         %27 = OpTypeVector %26 4
+         %32 = OpTypePointer Output %23
+         %33 = OpVariable %32 Output
+         %34 = OpConstantComposite %23 %19 %19 %19 %19
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %10 %12
+         %15 = OpLoad %6 %14
+         %17 = OpExtInst %6 %1 FClamp %7 %15 %16
+         %20 = OpAccessChain %13 %10 %12
+         %21 = OpLoad %6 %20
+         %22 = OpExtInst %6 %1 FClamp %18 %19 %21
+         %24 = OpCompositeConstruct %23 %17 %22 %19 %16
+         %28 = OpFOrdNotEqual %27 %24 %25
+         %29 = OpAny %26 %28
+               OpSelectionMerge %31 None
+               OpBranchConditional %29 %30 %35
+         %30 = OpLabel
+               OpStore %33 %34
+               OpBranch %31
+         %35 = OpLabel
+               OpStore %33 %25
+               OpBranch %31
+         %31 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE float DATA
+ 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp.amber
new file mode 100644
index 0000000..4b72d86
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp.amber
@@ -0,0 +1,141 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding rule path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float fourtytwo;
+# };
+#
+# void main()
+# {
+#     // If condition is always false.
+#     if(clamp(1.0, fourtytwo, fourtytwo) > 42.0
+#        || clamp(1.0, fourtytwo, fourtytwo) < 42.0)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+#
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 41
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %36
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "fourtytwo"
+               OpName %11 ""
+               OpName %36 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %36 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypeFloat 32
+          %8 = OpConstant %7 1
+          %9 = OpTypeStruct %7
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpTypeInt 32 1
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Uniform %7
+         %20 = OpConstant %7 42
+         %34 = OpTypeVector %7 4
+         %35 = OpTypePointer Output %34
+         %36 = OpVariable %35 Output
+         %37 = OpConstant %7 0
+         %38 = OpConstantComposite %34 %37 %37 %37 %37
+         %40 = OpConstantComposite %34 %8 %37 %37 %8
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %7 %15
+         %17 = OpAccessChain %14 %11 %13
+         %18 = OpLoad %7 %17
+         %19 = OpExtInst %7 %1 FClamp %8 %16 %18
+         %21 = OpFOrdGreaterThan %6 %19 %20
+         %22 = OpLogicalNot %6 %21
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %24
+         %23 = OpLabel
+         %25 = OpAccessChain %14 %11 %13
+         %26 = OpLoad %7 %25
+         %27 = OpAccessChain %14 %11 %13
+         %28 = OpLoad %7 %27
+         %29 = OpExtInst %7 %1 FClamp %8 %26 %28
+         %30 = OpFOrdLessThan %6 %29 %20
+               OpBranch %24
+         %24 = OpLabel
+         %31 = OpPhi %6 %21 %5 %30 %23
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %39
+         %32 = OpLabel
+               OpStore %36 %38
+               OpBranch %33
+         %39 = OpLabel
+               OpStore %36 %40
+               OpBranch %33
+         %33 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# fourtytwo
+BUFFER variant_fourtytwo DATA_TYPE float DATA
+ 42.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_fourtytwo AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-dot-condition-true.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-dot-condition-true.amber
new file mode 100644
index 0000000..e5ad450
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-dot-condition-true.amber
@@ -0,0 +1,109 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding rule path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     float one = 1.0;
+#     // If condition is always false
+#     if(dot(vec2(2.0, 1.0), vec2(1.0, (true ? 0.0 : one))) != 2.0)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %25
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "one"
+               OpName %25 "_GLF_color"
+               OpDecorate %25 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 1
+         %10 = OpTypeVector %6 2
+         %11 = OpConstant %6 2
+         %12 = OpConstantComposite %10 %11 %9
+         %13 = OpTypeBool
+         %14 = OpConstantTrue %13
+         %15 = OpConstant %6 0
+         %23 = OpTypeVector %6 4
+         %24 = OpTypePointer Output %23
+         %25 = OpVariable %24 Output
+         %26 = OpConstantComposite %23 %15 %15 %15 %15
+         %28 = OpConstantComposite %23 %9 %15 %15 %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+         %16 = OpLoad %6 %8
+         %17 = OpSelect %6 %14 %15 %16
+         %18 = OpCompositeConstruct %10 %9 %17
+         %19 = OpDot %6 %12 %18
+         %20 = OpFOrdNotEqual %13 %19 %11
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %27
+         %21 = OpLabel
+               OpStore %25 %26
+               OpBranch %22
+         %27 = OpLabel
+               OpStore %25 %28
+               OpBranch %22
+         %22 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-dot-determinant.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-dot-determinant.amber
new file mode 100644
index 0000000..29474f4
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-dot-determinant.amber
@@ -0,0 +1,104 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding rule path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     if(dot(vec2(determinant(mat2(1)), 0), vec2(0)) == 0.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %24
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %24 "_GLF_color"
+               OpDecorate %24 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypeMatrix %7 2
+          %9 = OpConstant %6 1
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %9 %10
+         %12 = OpConstantComposite %7 %10 %9
+         %13 = OpConstantComposite %8 %11 %12
+         %16 = OpConstantComposite %7 %10 %10
+         %18 = OpTypeBool
+         %22 = OpTypeVector %6 4
+         %23 = OpTypePointer Output %22
+         %24 = OpVariable %23 Output
+         %25 = OpConstantComposite %22 %9 %10 %10 %9
+         %27 = OpConstantComposite %22 %10 %10 %10 %10
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpExtInst %6 %1 Determinant %13
+         %15 = OpCompositeConstruct %7 %14 %10
+         %17 = OpDot %6 %15 %16
+         %19 = OpFOrdEqual %18 %17 %10
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %26
+         %20 = OpLabel
+               OpStore %24 %25
+               OpBranch %21
+         %26 = OpLabel
+               OpStore %24 %27
+               OpBranch %21
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-vector-shuffle.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-vector-shuffle.amber
new file mode 100644
index 0000000..76a68a9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-vector-shuffle.amber
@@ -0,0 +1,145 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding rule path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-O'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec2 v;
+#
+#     for(int i = 2; i < 3; i++)
+#     {
+#         vec4 tmp = vec4(0);
+#         tmp.xy = vec2(1.0, float(i));
+#         v = tmp.xy;
+#     }
+#
+#     // If condition is always false.
+#     if (v.x != 1.0 || v.y != 2.0)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 69
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %57
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %57 "_GLF_color"
+               OpDecorate %38 RelaxedPrecision
+               OpDecorate %57 Location 0
+               OpDecorate %62 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %9 = OpConstant %6 2
+         %16 = OpConstant %6 3
+         %17 = OpTypeBool
+         %19 = OpTypeFloat 32
+         %20 = OpTypeVector %19 4
+         %23 = OpConstant %19 0
+         %24 = OpConstantComposite %20 %23 %23 %23 %23
+         %25 = OpConstant %19 1
+         %28 = OpTypeVector %19 2
+         %37 = OpConstant %6 1
+         %51 = OpConstant %19 2
+         %56 = OpTypePointer Output %20
+         %57 = OpVariable %56 Output
+         %59 = OpConstantComposite %20 %25 %23 %23 %25
+         %64 = OpUndef %28
+         %68 = OpConstantNull %20
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpBranch %10
+         %10 = OpLabel
+         %63 = OpPhi %28 %64 %5 %35 %11
+         %62 = OpPhi %6 %9 %5 %38 %11
+         %18 = OpSLessThan %17 %62 %16
+               OpLoopMerge %12 %11 None
+               OpBranchConditional %18 %11 %12
+         %11 = OpLabel
+         %27 = OpConvertSToF %19 %62
+         %29 = OpCompositeConstruct %28 %25 %27
+         %35 = OpVectorShuffle %28 %29 %68 0 1
+         %38 = OpIAdd %6 %62 %37
+               OpBranch %10
+         %12 = OpLabel
+         %43 = OpCompositeExtract %19 %63 0
+         %44 = OpFOrdNotEqual %17 %43 %25
+         %45 = OpLogicalNot %17 %44
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %46 %47
+         %46 = OpLabel
+         %50 = OpCompositeExtract %19 %63 1
+         %52 = OpFOrdNotEqual %17 %50 %51
+               OpBranch %47
+         %47 = OpLabel
+         %53 = OpPhi %17 %44 %12 %52 %46
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %58
+         %54 = OpLabel
+               OpStore %57 %24
+               OpBranch %55
+         %58 = OpLabel
+               OpStore %57 %59
+               OpBranch %55
+         %55 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-constants-mix-uniform.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-constants-mix-uniform.amber
new file mode 100644
index 0000000..038d0f1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-constants-mix-uniform.amber
@@ -0,0 +1,142 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant handling path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 one;
+# };
+#
+# void main()
+# {
+#     // Mixing (1, 1) and (1, 1) is still (1, 1).
+#     vec2 mixed = mix(vec2(1), one, 0.5);
+#
+#     // If condition is always true.
+#     if (mixed == vec2(1))
+#         _GLF_color = vec4(mixed.x, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %32
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "mixed"
+               OpName %12 "buf0"
+               OpMemberName %12 0 "one"
+               OpName %14 ""
+               OpName %32 "_GLF_color"
+               OpMemberDecorate %12 0 Offset 0
+               OpDecorate %12 Block
+               OpDecorate %14 DescriptorSet 0
+               OpDecorate %14 Binding 0
+               OpDecorate %32 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstantComposite %7 %10 %10
+         %12 = OpTypeStruct %7
+         %13 = OpTypePointer Uniform %12
+         %14 = OpVariable %13 Uniform
+         %15 = OpTypeInt 32 1
+         %16 = OpConstant %15 0
+         %17 = OpTypePointer Uniform %7
+         %20 = OpConstant %6 0.5
+         %24 = OpTypeBool
+         %25 = OpTypeVector %24 2
+         %30 = OpTypeVector %6 4
+         %31 = OpTypePointer Output %30
+         %32 = OpVariable %31 Output
+         %33 = OpTypeInt 32 0
+         %34 = OpConstant %33 0
+         %35 = OpTypePointer Function %6
+         %38 = OpConstant %6 0
+         %41 = OpConstantComposite %30 %38 %38 %38 %38
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %18 = OpAccessChain %17 %14 %16
+         %19 = OpLoad %7 %18
+         %21 = OpCompositeConstruct %7 %20 %20
+         %22 = OpExtInst %7 %1 FMix %11 %19 %21
+               OpStore %9 %22
+         %23 = OpLoad %7 %9
+         %26 = OpFOrdEqual %25 %23 %11
+         %27 = OpAll %24 %26
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %40
+         %28 = OpLabel
+         %36 = OpAccessChain %35 %9 %34
+         %37 = OpLoad %6 %36
+         %39 = OpCompositeConstruct %30 %37 %38 %38 %10
+               OpStore %32 %39
+               OpBranch %29
+         %40 = OpLabel
+               OpStore %32 %41
+               OpBranch %29
+         %29 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE vec2<float> DATA
+ 1.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-func-argument.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-func-argument.amber
new file mode 100644
index 0000000..782ac34
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-func-argument.amber
@@ -0,0 +1,290 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific propagate array copy path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--reduce-load-size'
+# '--if-conversion'
+# '--private-to-local'
+# '--if-conversion'
+# '--eliminate-dead-branches'
+# '--eliminate-local-multi-store'
+# '--scalar-replacement=100'
+# '--vector-dce'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-local-single-store'
+# '--convert-local-access-chains'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--reduce-load-size'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--redundancy-elimination'
+# '--eliminate-dead-branches'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# struct Array
+# {
+#     int values[2];
+# };
+#
+# // Function always returns 1 regardless of array contents
+# int func(Array a)
+# {
+#     while(true)
+#     {
+#         if(a.values[zero] == 1)
+#             return 1;
+#
+#         break;
+#     }
+#     return 1;
+# }
+# void main()
+# {
+#     Array a;
+#     // If condition is always true
+#     if (func(a) == 1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 104
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %51
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "Array"
+               OpMemberName %10 0 "values"
+               OpName %14 "func(struct-Array-i1[2]1;"
+               OpName %13 "a"
+               OpName %24 "buf0"
+               OpMemberName %24 0 "zero"
+               OpName %26 ""
+               OpName %42 "param"
+               OpName %51 "_GLF_color"
+               OpMemberDecorate %10 0 RelaxedPrecision
+               OpDecorate %14 RelaxedPrecision
+               OpMemberDecorate %24 0 RelaxedPrecision
+               OpMemberDecorate %24 0 Offset 0
+               OpDecorate %24 Block
+               OpDecorate %26 DescriptorSet 0
+               OpDecorate %26 Binding 0
+               OpDecorate %29 RelaxedPrecision
+               OpDecorate %32 RelaxedPrecision
+               OpDecorate %51 Location 0
+               OpDecorate %58 RelaxedPrecision
+               OpDecorate %73 RelaxedPrecision
+               OpDecorate %72 RelaxedPrecision
+               OpDecorate %80 RelaxedPrecision
+               OpDecorate %81 RelaxedPrecision
+               OpDecorate %94 RelaxedPrecision
+               OpDecorate %96 RelaxedPrecision
+               OpDecorate %100 RelaxedPrecision
+               OpDecorate %103 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 2
+          %9 = OpTypeArray %6 %8
+         %10 = OpTypeStruct %9
+         %11 = OpTypePointer Function %10
+         %12 = OpTypeFunction %6 %11
+         %21 = OpTypeBool
+         %22 = OpConstantTrue %21
+         %23 = OpConstant %6 0
+         %24 = OpTypeStruct %6
+         %25 = OpTypePointer Uniform %24
+         %26 = OpVariable %25 Uniform
+         %27 = OpTypePointer Uniform %6
+         %30 = OpTypePointer Function %6
+         %33 = OpConstant %6 1
+         %48 = OpTypeFloat 32
+         %49 = OpTypeVector %48 4
+         %50 = OpTypePointer Output %49
+         %51 = OpVariable %50 Output
+         %52 = OpConstant %48 1
+         %53 = OpConstant %48 0
+         %54 = OpConstantComposite %49 %52 %53 %53 %52
+         %56 = OpConstantComposite %49 %53 %53 %53 %53
+         %63 = OpConstantFalse %21
+         %64 = OpTypePointer Function %21
+         %68 = OpUndef %10
+         %76 = OpUndef %6
+         %77 = OpUndef %21
+         %78 = OpConstantNull %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %79 = OpVariable %64 Function %63
+         %80 = OpVariable %30 Function
+         %81 = OpVariable %30 Function
+         %42 = OpVariable %11 Function
+               OpStore %42 %68
+               OpStore %79 %63
+               OpBranch %82
+         %82 = OpLabel
+               OpLoopMerge %85 %83 None
+               OpBranch %87
+         %87 = OpLabel
+               OpLoopMerge %90 %88 None
+               OpBranch %92
+         %92 = OpLabel
+         %93 = OpAccessChain %27 %26 %23
+         %94 = OpLoad %6 %93
+         %95 = OpAccessChain %30 %42 %23 %94
+         %96 = OpLoad %6 %95
+         %97 = OpIEqual %21 %96 %33
+               OpSelectionMerge %98 None
+               OpBranchConditional %97 %99 %98
+         %99 = OpLabel
+               OpStore %79 %22
+               OpStore %80 %33
+               OpBranch %90
+         %98 = OpLabel
+               OpBranch %90
+         %88 = OpLabel
+               OpBranch %87
+         %90 = OpLabel
+        %100 = OpPhi %6 %33 %99 %76 %98
+        %101 = OpPhi %21 %22 %99 %63 %98
+               OpSelectionMerge %102 None
+               OpBranchConditional %101 %85 %102
+        %102 = OpLabel
+               OpStore %79 %22
+               OpStore %80 %33
+               OpBranch %85
+         %83 = OpLabel
+               OpBranch %82
+         %85 = OpLabel
+        %103 = OpPhi %6 %100 %90 %33 %102
+               OpStore %81 %103
+         %45 = OpIEqual %21 %103 %33
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %46 %55
+         %55 = OpLabel
+               OpStore %51 %56
+               OpBranch %47
+         %46 = OpLabel
+               OpStore %51 %54
+               OpBranch %47
+         %47 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %14 = OpFunction %6 None %12
+         %13 = OpFunctionParameter %11
+         %15 = OpLabel
+         %65 = OpVariable %64 Function %63
+         %58 = OpVariable %30 Function
+               OpBranch %60
+         %60 = OpLabel
+         %71 = OpPhi %21 %63 %15 %77 %62
+               OpLoopMerge %57 %62 None
+               OpBranch %61
+         %61 = OpLabel
+               OpBranch %16
+         %16 = OpLabel
+         %70 = OpPhi %21 %71 %61 %77 %19
+               OpLoopMerge %18 %19 None
+               OpBranch %20
+         %20 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %28 = OpAccessChain %27 %26 %23
+         %29 = OpLoad %6 %28
+         %31 = OpAccessChain %30 %13 %23 %29
+         %32 = OpLoad %6 %31
+         %34 = OpIEqual %21 %32 %33
+               OpSelectionMerge %36 None
+               OpBranchConditional %34 %35 %36
+         %35 = OpLabel
+               OpStore %65 %22
+               OpStore %58 %33
+               OpBranch %18
+         %36 = OpLabel
+               OpBranch %18
+         %19 = OpLabel
+               OpBranch %16
+         %18 = OpLabel
+         %73 = OpPhi %6 %33 %35 %76 %36
+         %69 = OpPhi %21 %22 %35 %70 %36
+               OpSelectionMerge %66 None
+               OpBranchConditional %69 %57 %66
+         %66 = OpLabel
+               OpStore %65 %22
+               OpStore %58 %33
+               OpBranch %57
+         %62 = OpLabel
+               OpBranch %60
+         %57 = OpLabel
+         %72 = OpPhi %6 %73 %18 %33 %66
+               OpReturnValue %72
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-no-stores.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-no-stores.amber
new file mode 100644
index 0000000..76f33ec
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-no-stores.amber
@@ -0,0 +1,158 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific propagate array copy path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# struct Array {
+#     int values[2];
+# };
+#
+# void main()
+# {
+#     Array a;
+#     a.values[zero] = 1;
+#     Array b = a;
+#     float one = 0.0;
+#     // If condition is always true
+#     if(b.values[zero] == 1)
+#         one = 1.0;
+#     _GLF_color = vec4(one, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %40
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "Array"
+               OpMemberName %10 0 "values"
+               OpName %12 "a"
+               OpName %14 "buf0"
+               OpMemberName %14 0 "zero"
+               OpName %16 ""
+               OpName %23 "b"
+               OpName %27 "one"
+               OpName %40 "_GLF_color"
+               OpMemberDecorate %10 0 RelaxedPrecision
+               OpMemberDecorate %14 0 RelaxedPrecision
+               OpMemberDecorate %14 0 Offset 0
+               OpDecorate %14 Block
+               OpDecorate %16 DescriptorSet 0
+               OpDecorate %16 Binding 0
+               OpDecorate %19 RelaxedPrecision
+               OpDecorate %30 RelaxedPrecision
+               OpDecorate %32 RelaxedPrecision
+               OpDecorate %40 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 2
+          %9 = OpTypeArray %6 %8
+         %10 = OpTypeStruct %9
+         %11 = OpTypePointer Function %10
+         %13 = OpConstant %6 0
+         %14 = OpTypeStruct %6
+         %15 = OpTypePointer Uniform %14
+         %16 = OpVariable %15 Uniform
+         %17 = OpTypePointer Uniform %6
+         %20 = OpConstant %6 1
+         %21 = OpTypePointer Function %6
+         %25 = OpTypeFloat 32
+         %26 = OpTypePointer Function %25
+         %28 = OpConstant %25 0
+         %33 = OpTypeBool
+         %37 = OpConstant %25 1
+         %38 = OpTypeVector %25 4
+         %39 = OpTypePointer Output %38
+         %40 = OpVariable %39 Output
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %12 = OpVariable %11 Function
+         %23 = OpVariable %11 Function
+         %27 = OpVariable %26 Function
+         %18 = OpAccessChain %17 %16 %13
+         %19 = OpLoad %6 %18
+         %22 = OpAccessChain %21 %12 %13 %19
+               OpStore %22 %20
+         %24 = OpLoad %10 %12
+               OpStore %23 %24
+               OpStore %27 %28
+         %29 = OpAccessChain %17 %16 %13
+         %30 = OpLoad %6 %29
+         %31 = OpAccessChain %21 %23 %13 %30
+         %32 = OpLoad %6 %31
+         %34 = OpIEqual %33 %32 %20
+               OpSelectionMerge %36 None
+               OpBranchConditional %34 %35 %36
+         %35 = OpLabel
+               OpStore %27 %37
+               OpBranch %36
+         %36 = OpLabel
+         %41 = OpLoad %25 %27
+         %42 = OpCompositeConstruct %38 %41 %28 %28 %37
+               OpStore %40 %42
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-param-uniform.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-param-uniform.amber
new file mode 100644
index 0000000..00f6693
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-copy-prop-arrays-param-uniform.amber
@@ -0,0 +1,299 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific propagate array copy path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--reduce-load-size'
+# '--if-conversion'
+# '--private-to-local'
+# '--if-conversion'
+# '--eliminate-dead-branches'
+# '--eliminate-local-multi-store'
+# '--scalar-replacement=100'
+# '--vector-dce'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-local-single-store'
+# '--convert-local-access-chains'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--reduce-load-size'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--redundancy-elimination'
+# '--eliminate-dead-branches'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# struct Array
+# {
+#     int values[2];
+# };
+#
+# // Function always returns 1
+# int func(Array a)
+# {
+#     while(true)
+#     {
+#         if(a.values[zero] == 0)
+#             return 42;
+#
+#         break;
+#     }
+#     return 42;
+# }
+# void main()
+# {
+#     Array a;
+#     a.values[0] = zero;
+#     // If condition is always true
+#     if (func(a) == 42)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 112
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %54
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "Array"
+               OpMemberName %10 0 "values"
+               OpName %14 "func(struct-Array-i1[2]1;"
+               OpName %13 "a"
+               OpName %24 "buf0"
+               OpMemberName %24 0 "zero"
+               OpName %26 ""
+               OpName %45 "param"
+               OpName %54 "_GLF_color"
+               OpMemberDecorate %10 0 RelaxedPrecision
+               OpDecorate %14 RelaxedPrecision
+               OpMemberDecorate %24 0 RelaxedPrecision
+               OpMemberDecorate %24 0 Offset 0
+               OpDecorate %24 Block
+               OpDecorate %26 DescriptorSet 0
+               OpDecorate %26 Binding 0
+               OpDecorate %29 RelaxedPrecision
+               OpDecorate %32 RelaxedPrecision
+               OpDecorate %43 RelaxedPrecision
+               OpDecorate %54 Location 0
+               OpDecorate %61 RelaxedPrecision
+               OpDecorate %75 RelaxedPrecision
+               OpDecorate %74 RelaxedPrecision
+               OpDecorate %81 RelaxedPrecision
+               OpDecorate %86 RelaxedPrecision
+               OpDecorate %87 RelaxedPrecision
+               OpDecorate %102 RelaxedPrecision
+               OpDecorate %106 RelaxedPrecision
+               OpDecorate %109 RelaxedPrecision
+               OpDecorate %110 RelaxedPrecision
+               OpDecorate %111 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 2
+          %9 = OpTypeArray %6 %8
+         %10 = OpTypeStruct %9
+         %11 = OpTypePointer Function %10
+         %12 = OpTypeFunction %6 %11
+         %21 = OpTypeBool
+         %22 = OpConstantTrue %21
+         %23 = OpConstant %6 0
+         %24 = OpTypeStruct %6
+         %25 = OpTypePointer Uniform %24
+         %26 = OpVariable %25 Uniform
+         %27 = OpTypePointer Uniform %6
+         %30 = OpTypePointer Function %6
+         %36 = OpConstant %6 42
+         %51 = OpTypeFloat 32
+         %52 = OpTypeVector %51 4
+         %53 = OpTypePointer Output %52
+         %54 = OpVariable %53 Output
+         %55 = OpConstant %51 1
+         %56 = OpConstant %51 0
+         %57 = OpConstantComposite %52 %55 %56 %56 %55
+         %59 = OpConstantComposite %52 %56 %56 %56 %56
+         %66 = OpConstantFalse %21
+         %67 = OpTypePointer Function %21
+         %78 = OpUndef %6
+         %79 = OpUndef %21
+         %80 = OpTypePointer Function %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %85 = OpVariable %67 Function %66
+         %86 = OpVariable %30 Function
+         %87 = OpVariable %30 Function
+         %81 = OpVariable %80 Function
+         %45 = OpVariable %11 Function
+         %42 = OpAccessChain %27 %26 %23
+         %43 = OpLoad %6 %42
+        %110 = OpLoad %9 %81
+        %111 = OpCompositeInsert %9 %43 %110 0
+               OpStore %81 %111
+         %83 = OpLoad %9 %81
+         %84 = OpCompositeConstruct %10 %83
+               OpStore %45 %84
+               OpStore %85 %66
+               OpBranch %88
+         %88 = OpLabel
+               OpLoopMerge %91 %89 None
+               OpBranch %93
+         %93 = OpLabel
+               OpLoopMerge %96 %94 None
+               OpBranch %98
+         %98 = OpLabel
+        %101 = OpAccessChain %30 %45 %23 %43
+        %102 = OpLoad %6 %101
+        %103 = OpIEqual %21 %102 %23
+               OpSelectionMerge %104 None
+               OpBranchConditional %103 %105 %104
+        %105 = OpLabel
+               OpStore %85 %22
+               OpStore %86 %36
+               OpBranch %96
+        %104 = OpLabel
+               OpBranch %96
+         %94 = OpLabel
+               OpBranch %93
+         %96 = OpLabel
+        %106 = OpPhi %6 %36 %105 %78 %104
+        %107 = OpPhi %21 %22 %105 %66 %104
+               OpSelectionMerge %108 None
+               OpBranchConditional %107 %91 %108
+        %108 = OpLabel
+               OpStore %85 %22
+               OpStore %86 %36
+               OpBranch %91
+         %89 = OpLabel
+               OpBranch %88
+         %91 = OpLabel
+        %109 = OpPhi %6 %106 %96 %36 %108
+               OpStore %87 %109
+         %48 = OpIEqual %21 %109 %36
+               OpSelectionMerge %50 None
+               OpBranchConditional %48 %49 %58
+         %58 = OpLabel
+               OpStore %54 %59
+               OpBranch %50
+         %49 = OpLabel
+               OpStore %54 %57
+               OpBranch %50
+         %50 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %14 = OpFunction %6 None %12
+         %13 = OpFunctionParameter %11
+         %15 = OpLabel
+         %68 = OpVariable %67 Function %66
+         %61 = OpVariable %30 Function
+               OpBranch %63
+         %63 = OpLabel
+         %73 = OpPhi %21 %66 %15 %79 %65
+               OpLoopMerge %60 %65 None
+               OpBranch %64
+         %64 = OpLabel
+               OpBranch %16
+         %16 = OpLabel
+         %72 = OpPhi %21 %73 %64 %79 %19
+               OpLoopMerge %18 %19 None
+               OpBranch %20
+         %20 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %28 = OpAccessChain %27 %26 %23
+         %29 = OpLoad %6 %28
+         %31 = OpAccessChain %30 %13 %23 %29
+         %32 = OpLoad %6 %31
+         %33 = OpIEqual %21 %32 %23
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpStore %68 %22
+               OpStore %61 %36
+               OpBranch %18
+         %35 = OpLabel
+               OpBranch %18
+         %19 = OpLabel
+               OpBranch %16
+         %18 = OpLabel
+         %75 = OpPhi %6 %36 %34 %78 %35
+         %71 = OpPhi %21 %22 %34 %72 %35
+               OpSelectionMerge %69 None
+               OpBranchConditional %71 %60 %69
+         %69 = OpLabel
+               OpStore %68 %22
+               OpStore %61 %36
+               OpBranch %60
+         %65 = OpLabel
+               OpBranch %63
+         %60 = OpLabel
+         %74 = OpPhi %6 %75 %18 %36 %69
+               OpReturnValue %74
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dead-code-unreachable-merge.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dead-code-unreachable-merge.amber
new file mode 100644
index 0000000..ed02598
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dead-code-unreachable-merge.amber
@@ -0,0 +1,248 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific dead code elimination path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+# float array0[3]; // Will end up having 0, 0, 0
+# float array1[3]; // Will end up having 1, 1, 1
+#
+# void main()
+# {
+#     int q = 0;
+#     int i = int(gl_FragCoord.x) % 3;
+#     for(int c = 0; c < 3; c++)
+#     {
+#         array0[c] = 0.0;
+#         array1[c] = 0.0;
+#
+#         // injectionSwitch.x is always zero
+#         switch(int((injectionSwitch.x)) + q)
+#         {
+#             case 0:
+#                 q = 61;
+#                 break;
+#             case 51:
+#                 // We never hit this infinite loop.
+#                 while(true) {}
+#                 // This wrong value should never be written.
+#                 array0[c] = 1.0;
+#             case 61:
+#                 array1[0] = 1.0;
+#                 array1[c] = 1.0;
+#         }
+#     }
+#     _GLF_color = vec4(array1[i], array0[i], array0[i], 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 87
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %14 %76
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "q"
+               OpName %10 "i"
+               OpName %14 "gl_FragCoord"
+               OpName %23 "c"
+               OpName %35 "array0"
+               OpName %40 "array1"
+               OpName %44 "buf0"
+               OpMemberName %44 0 "injectionSwitch"
+               OpName %46 ""
+               OpName %76 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %14 BuiltIn FragCoord
+               OpDecorate %20 RelaxedPrecision
+               OpDecorate %22 RelaxedPrecision
+               OpDecorate %23 RelaxedPrecision
+               OpDecorate %29 RelaxedPrecision
+               OpDecorate %36 RelaxedPrecision
+               OpDecorate %41 RelaxedPrecision
+               OpMemberDecorate %44 0 Offset 0
+               OpDecorate %44 Block
+               OpDecorate %46 DescriptorSet 0
+               OpDecorate %46 Binding 0
+               OpDecorate %50 RelaxedPrecision
+               OpDecorate %51 RelaxedPrecision
+               OpDecorate %52 RelaxedPrecision
+               OpDecorate %65 RelaxedPrecision
+               OpDecorate %69 RelaxedPrecision
+               OpDecorate %72 RelaxedPrecision
+               OpDecorate %74 RelaxedPrecision
+               OpDecorate %76 Location 0
+               OpDecorate %77 RelaxedPrecision
+               OpDecorate %80 RelaxedPrecision
+               OpDecorate %83 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %11 = OpTypeFloat 32
+         %12 = OpTypeVector %11 4
+         %13 = OpTypePointer Input %12
+         %14 = OpVariable %13 Input
+         %15 = OpTypeInt 32 0
+         %16 = OpConstant %15 0
+         %17 = OpTypePointer Input %11
+         %21 = OpConstant %6 3
+         %30 = OpTypeBool
+         %32 = OpConstant %15 3
+         %33 = OpTypeArray %11 %32
+         %34 = OpTypePointer Private %33
+         %35 = OpVariable %34 Private
+         %37 = OpConstant %11 0
+         %38 = OpTypePointer Private %11
+         %40 = OpVariable %34 Private
+         %43 = OpTypeVector %11 2
+         %44 = OpTypeStruct %43
+         %45 = OpTypePointer Uniform %44
+         %46 = OpVariable %45 Uniform
+         %47 = OpTypePointer Uniform %11
+         %57 = OpConstant %6 61
+         %64 = OpConstantTrue %30
+         %66 = OpConstant %11 1
+         %73 = OpConstant %6 1
+         %75 = OpTypePointer Output %12
+         %76 = OpVariable %75 Output
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+         %23 = OpVariable %7 Function
+               OpStore %8 %9
+         %18 = OpAccessChain %17 %14 %16
+         %19 = OpLoad %11 %18
+         %20 = OpConvertFToS %6 %19
+         %22 = OpSMod %6 %20 %21
+               OpStore %10 %22
+               OpStore %23 %9
+               OpBranch %24
+         %24 = OpLabel
+               OpLoopMerge %26 %27 None
+               OpBranch %28
+         %28 = OpLabel
+         %29 = OpLoad %6 %23
+         %31 = OpSLessThan %30 %29 %21
+               OpBranchConditional %31 %25 %26
+         %25 = OpLabel
+         %36 = OpLoad %6 %23
+         %39 = OpAccessChain %38 %35 %36
+               OpStore %39 %37
+         %41 = OpLoad %6 %23
+         %42 = OpAccessChain %38 %40 %41
+               OpStore %42 %37
+         %48 = OpAccessChain %47 %46 %9 %16
+         %49 = OpLoad %11 %48
+         %50 = OpConvertFToS %6 %49
+         %51 = OpLoad %6 %8
+         %52 = OpIAdd %6 %50 %51
+               OpSelectionMerge %56 None
+               OpSwitch %52 %56 0 %53 51 %54 61 %55
+         %53 = OpLabel
+               OpStore %8 %57
+               OpBranch %56
+         %54 = OpLabel
+               OpBranch %59
+         %59 = OpLabel
+               OpLoopMerge %61 %62 None
+               OpBranch %63
+         %63 = OpLabel
+               OpBranchConditional %64 %60 %61
+         %60 = OpLabel
+               OpBranch %62
+         %62 = OpLabel
+               OpBranch %59
+         %61 = OpLabel
+         %65 = OpLoad %6 %23
+         %67 = OpAccessChain %38 %35 %65
+               OpStore %67 %66
+               OpBranch %55
+         %55 = OpLabel
+         %68 = OpAccessChain %38 %40 %9
+               OpStore %68 %66
+         %69 = OpLoad %6 %23
+         %70 = OpAccessChain %38 %40 %69
+               OpStore %70 %66
+               OpBranch %56
+         %56 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+         %72 = OpLoad %6 %23
+         %74 = OpIAdd %6 %72 %73
+               OpStore %23 %74
+               OpBranch %24
+         %26 = OpLabel
+         %77 = OpLoad %6 %10
+         %78 = OpAccessChain %38 %40 %77
+         %79 = OpLoad %11 %78
+         %80 = OpLoad %6 %10
+         %81 = OpAccessChain %38 %35 %80
+         %82 = OpLoad %11 %81
+         %83 = OpLoad %6 %10
+         %84 = OpAccessChain %38 %35 %83
+         %85 = OpLoad %11 %84
+         %86 = OpCompositeConstruct %12 %79 %82 %85 %66
+               OpStore %76 %86
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-and-zero.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-and-zero.amber
new file mode 100644
index 0000000..562e7e8
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-and-zero.amber
@@ -0,0 +1,125 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // If condition is always true.
+#     if ((one & 0) == 0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %22
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "buf0"
+               OpMemberName %7 0 "one"
+               OpName %9 ""
+               OpName %22 "_GLF_color"
+               OpMemberDecorate %7 0 Offset 0
+               OpDecorate %7 Block
+               OpDecorate %9 DescriptorSet 0
+               OpDecorate %9 Binding 0
+               OpDecorate %22 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6
+          %8 = OpTypePointer Uniform %7
+          %9 = OpVariable %8 Uniform
+         %10 = OpConstant %6 0
+         %11 = OpTypePointer Uniform %6
+         %15 = OpTypeBool
+         %19 = OpTypeFloat 32
+         %20 = OpTypeVector %19 4
+         %21 = OpTypePointer Output %20
+         %22 = OpVariable %21 Output
+         %23 = OpConstant %19 1
+         %24 = OpConstant %19 0
+         %25 = OpConstantComposite %20 %23 %24 %24 %23
+         %27 = OpConstantComposite %20 %24 %24 %24 %24
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %12 = OpAccessChain %11 %9 %10
+         %13 = OpLoad %6 %12
+         %14 = OpBitwiseAnd %6 %13 %10
+         %16 = OpIEqual %15 %14 %10
+               OpSelectionMerge %18 None
+               OpBranchConditional %16 %17 %26
+         %17 = OpLabel
+               OpStore %22 %25
+               OpBranch %18
+         %26 = OpLabel
+               OpStore %22 %27
+               OpBranch %18
+         %18 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-or-full-mask.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-or-full-mask.amber
new file mode 100644
index 0000000..9951e9c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-or-full-mask.amber
@@ -0,0 +1,126 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // If condition is always true.
+#     if (((~0) | one) == (~0))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %23
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "one"
+               OpName %10 ""
+               OpName %23 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %23 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpConstant %6 -1
+          %8 = OpTypeStruct %6
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpConstant %6 0
+         %12 = OpTypePointer Uniform %6
+         %16 = OpTypeBool
+         %20 = OpTypeFloat 32
+         %21 = OpTypeVector %20 4
+         %22 = OpTypePointer Output %21
+         %23 = OpVariable %22 Output
+         %24 = OpConstant %20 1
+         %25 = OpConstant %20 0
+         %26 = OpConstantComposite %21 %24 %25 %25 %24
+         %28 = OpConstantComposite %21 %25 %25 %25 %25
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %13 = OpAccessChain %12 %10 %11
+         %14 = OpLoad %6 %13
+         %15 = OpBitwiseOr %6 %7 %14
+         %17 = OpIEqual %16 %15 %7
+               OpSelectionMerge %19 None
+               OpBranchConditional %17 %18 %27
+         %18 = OpLabel
+               OpStore %23 %26
+               OpBranch %19
+         %27 = OpLabel
+               OpStore %23 %28
+               OpBranch %19
+         %19 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-xor.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-xor.amber
new file mode 100644
index 0000000..528d24d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-bitwise-xor.amber
@@ -0,0 +1,117 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int a = 6;
+#     int b = 5;
+#     // If condition is always false.
+#     if ((a ^ b) != 3)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %23
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "b"
+               OpName %23 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %12 RelaxedPrecision
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %14 RelaxedPrecision
+               OpDecorate %23 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 6
+         %11 = OpConstant %6 5
+         %15 = OpConstant %6 3
+         %16 = OpTypeBool
+         %20 = OpTypeFloat 32
+         %21 = OpTypeVector %20 4
+         %22 = OpTypePointer Output %21
+         %23 = OpVariable %22 Output
+         %24 = OpConstant %20 0
+         %25 = OpConstantComposite %21 %24 %24 %24 %24
+         %27 = OpConstant %20 1
+         %28 = OpConstantComposite %21 %27 %24 %24 %27
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %11
+         %12 = OpLoad %6 %8
+         %13 = OpLoad %6 %10
+         %14 = OpBitwiseXor %6 %12 %13
+         %17 = OpINotEqual %16 %14 %15
+               OpSelectionMerge %19 None
+               OpBranchConditional %17 %18 %26
+         %18 = OpLabel
+               OpStore %23 %25
+               OpBranch %19
+         %26 = OpLabel
+               OpStore %23 %28
+               OpBranch %19
+         %19 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-div-uniform-by-zero.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-div-uniform-by-zero.amber
new file mode 100644
index 0000000..53ced98
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-div-uniform-by-zero.amber
@@ -0,0 +1,137 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     // division by zero results are undefined.
+#     int tmp = one / 0;
+#     if (tmp == 0)
+#         _GLF_color = vec4(1, tmp, 0, 1);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 33
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %25
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "tmp"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "one"
+               OpName %11 ""
+               OpName %25 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpMemberDecorate %9 0 RelaxedPrecision
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %15 RelaxedPrecision
+               OpDecorate %16 RelaxedPrecision
+               OpDecorate %17 RelaxedPrecision
+               OpDecorate %25 Location 0
+               OpDecorate %27 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpConstant %6 0
+         %13 = OpTypePointer Uniform %6
+         %18 = OpTypeBool
+         %22 = OpTypeFloat 32
+         %23 = OpTypeVector %22 4
+         %24 = OpTypePointer Output %23
+         %25 = OpVariable %24 Output
+         %26 = OpConstant %22 1
+         %29 = OpConstant %22 0
+         %32 = OpConstantComposite %23 %26 %29 %29 %26
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %14 = OpAccessChain %13 %11 %12
+         %15 = OpLoad %6 %14
+         %16 = OpSDiv %6 %15 %12
+               OpStore %8 %16
+         %17 = OpLoad %6 %8
+         %19 = OpIEqual %18 %17 %12
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %31
+         %20 = OpLabel
+         %27 = OpLoad %6 %8
+         %28 = OpConvertSToF %22 %27
+         %30 = OpCompositeConstruct %23 %26 %28 %29 %26
+               OpStore %25 %30
+               OpBranch %21
+         %31 = OpLabel
+               OpStore %25 %32
+               OpBranch %21
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-div-variable-by-zero.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-div-variable-by-zero.amber
new file mode 100644
index 0000000..d908c2c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-div-variable-by-zero.amber
@@ -0,0 +1,119 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int one = 1;
+#     // Division by zero results are undefined
+#     int tmp = one / 0;
+#     if (tmp == 0)
+#         _GLF_color = vec4(1, tmp, 0, 1);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 30
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %22
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "one"
+               OpName %10 "tmp"
+               OpName %22 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %11 RelaxedPrecision
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %14 RelaxedPrecision
+               OpDecorate %22 Location 0
+               OpDecorate %24 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 1
+         %12 = OpConstant %6 0
+         %15 = OpTypeBool
+         %19 = OpTypeFloat 32
+         %20 = OpTypeVector %19 4
+         %21 = OpTypePointer Output %20
+         %22 = OpVariable %21 Output
+         %23 = OpConstant %19 1
+         %26 = OpConstant %19 0
+         %29 = OpConstantComposite %20 %23 %26 %26 %23
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+         %11 = OpLoad %6 %8
+         %13 = OpSDiv %6 %11 %12
+               OpStore %10 %13
+         %14 = OpLoad %6 %10
+         %16 = OpIEqual %15 %14 %12
+               OpSelectionMerge %18 None
+               OpBranchConditional %16 %17 %28
+         %17 = OpLabel
+         %24 = OpLoad %6 %10
+         %25 = OpConvertSToF %19 %24
+         %27 = OpCompositeConstruct %20 %23 %25 %26 %23
+               OpStore %22 %27
+               OpBranch %18
+         %28 = OpLabel
+               OpStore %22 %29
+               OpBranch %18
+         %18 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-and-const-variable.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-and-const-variable.amber
new file mode 100644
index 0000000..9a1d0a1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-and-const-variable.amber
@@ -0,0 +1,107 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     bool a = false;
+#
+#     // If condition is always false.
+#     if(true && a)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 24
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %18
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %18 "_GLF_color"
+               OpDecorate %18 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypePointer Function %6
+          %9 = OpConstantFalse %6
+         %10 = OpConstantTrue %6
+         %15 = OpTypeFloat 32
+         %16 = OpTypeVector %15 4
+         %17 = OpTypePointer Output %16
+         %18 = OpVariable %17 Output
+         %19 = OpConstant %15 0
+         %20 = OpConstantComposite %16 %19 %19 %19 %19
+         %22 = OpConstant %15 1
+         %23 = OpConstantComposite %16 %22 %19 %19 %22
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+         %11 = OpLoad %6 %8
+         %12 = OpLogicalAnd %6 %10 %11
+               OpSelectionMerge %14 None
+               OpBranchConditional %12 %13 %21
+         %13 = OpLabel
+               OpStore %18 %20
+               OpBranch %14
+         %21 = OpLabel
+               OpStore %18 %23
+               OpBranch %14
+         %14 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-and-constant.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-and-constant.amber
new file mode 100644
index 0000000..b04a3d4
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-and-constant.amber
@@ -0,0 +1,148 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main(void)
+# {
+#     int i = 2;
+#
+#     do
+#     {
+#         i++;
+#     }
+#     while(gl_FragCoord.x >= 0.0 && false);
+#
+#     // If condition is always true.
+#     if (i == 3)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %20 %37
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %20 "gl_FragCoord"
+               OpName %37 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %14 RelaxedPrecision
+               OpDecorate %16 RelaxedPrecision
+               OpDecorate %20 BuiltIn FragCoord
+               OpDecorate %31 RelaxedPrecision
+               OpDecorate %37 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 2
+         %15 = OpConstant %6 1
+         %17 = OpTypeFloat 32
+         %18 = OpTypeVector %17 4
+         %19 = OpTypePointer Input %18
+         %20 = OpVariable %19 Input
+         %21 = OpTypeInt 32 0
+         %22 = OpConstant %21 0
+         %23 = OpTypePointer Input %17
+         %26 = OpConstant %17 0
+         %27 = OpTypeBool
+         %29 = OpConstantFalse %27
+         %32 = OpConstant %6 3
+         %36 = OpTypePointer Output %18
+         %37 = OpVariable %36 Output
+         %38 = OpConstant %17 1
+         %39 = OpConstantComposite %18 %38 %26 %26 %38
+         %41 = OpConstantComposite %18 %26 %26 %26 %26
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+               OpBranch %10
+         %10 = OpLabel
+               OpLoopMerge %12 %13 None
+               OpBranch %11
+         %11 = OpLabel
+         %14 = OpLoad %6 %8
+         %16 = OpIAdd %6 %14 %15
+               OpStore %8 %16
+               OpBranch %13
+         %13 = OpLabel
+         %24 = OpAccessChain %23 %20 %22
+         %25 = OpLoad %17 %24
+         %28 = OpFOrdGreaterThanEqual %27 %25 %26
+         %30 = OpLogicalAnd %27 %28 %29
+               OpBranchConditional %30 %10 %12
+         %12 = OpLabel
+         %31 = OpLoad %6 %8
+         %33 = OpIEqual %27 %31 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %40
+         %34 = OpLabel
+               OpStore %37 %39
+               OpBranch %35
+         %40 = OpLabel
+               OpStore %37 %41
+               OpBranch %35
+         %35 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# resolution
+BUFFER variant_resolution DATA_TYPE vec2<float> DATA
+ 256.0 256.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-or-constant.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-or-constant.amber
new file mode 100644
index 0000000..fbbb17d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-logical-or-constant.amber
@@ -0,0 +1,107 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // If condition is always true.
+#     if((gl_FragCoord.x < 0.0) || true)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %9 %23
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "gl_FragCoord"
+               OpName %23 "_GLF_color"
+               OpDecorate %9 BuiltIn FragCoord
+               OpDecorate %23 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Input %7
+          %9 = OpVariable %8 Input
+         %10 = OpTypeInt 32 0
+         %11 = OpConstant %10 0
+         %12 = OpTypePointer Input %6
+         %15 = OpConstant %6 0
+         %16 = OpTypeBool
+         %18 = OpConstantTrue %16
+         %22 = OpTypePointer Output %7
+         %23 = OpVariable %22 Output
+         %24 = OpConstant %6 1
+         %25 = OpConstantComposite %7 %24 %15 %15 %24
+         %27 = OpConstantComposite %7 %15 %15 %15 %15
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %13 = OpAccessChain %12 %9 %11
+         %14 = OpLoad %6 %13
+         %17 = OpFOrdLessThan %16 %14 %15
+         %19 = OpLogicalOr %16 %17 %18
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %26
+         %20 = OpLabel
+               OpStore %23 %25
+               OpBranch %21
+         %26 = OpLabel
+               OpStore %23 %27
+               OpBranch %21
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-negate-variable.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-negate-variable.amber
new file mode 100644
index 0000000..1f304e2
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-negate-variable.amber
@@ -0,0 +1,109 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int i = 3;
+#     // If comparison is always true.
+#     if((~i) == -4)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0, 0, 0, 0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 26
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %20
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %20 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %11 RelaxedPrecision
+               OpDecorate %20 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 3
+         %12 = OpConstant %6 -4
+         %13 = OpTypeBool
+         %17 = OpTypeFloat 32
+         %18 = OpTypeVector %17 4
+         %19 = OpTypePointer Output %18
+         %20 = OpVariable %19 Output
+         %21 = OpConstant %17 1
+         %22 = OpConstant %17 0
+         %23 = OpConstantComposite %18 %21 %22 %22 %21
+         %25 = OpConstantComposite %18 %22 %22 %22 %22
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+         %10 = OpLoad %6 %8
+         %11 = OpNot %6 %10
+         %14 = OpIEqual %13 %11 %12
+               OpSelectionMerge %16 None
+               OpBranchConditional %14 %15 %24
+         %15 = OpLabel
+               OpStore %20 %23
+               OpBranch %16
+         %24 = OpLabel
+               OpStore %20 %25
+               OpBranch %16
+         %16 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-shift-gte32.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-shift-gte32.amber
new file mode 100644
index 0000000..6c7e0db
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-shift-gte32.amber
@@ -0,0 +1,253 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     uint one;
+# };
+#
+# void main()
+# {
+#     uint a = (77u + one) >> 32u;
+#     uint b = (3243u + one) >> 33u;
+#     uint c = (23u + one) >> 345u;
+#     uint d = (2395u + one) << 32u;
+#     uint e = (290485u + one) << 33u;
+#     uint f = (44321u + one) << 345u;
+#
+#     if (a != 1u) a = 1u;
+#     if (b != 0u) b = 0u;
+#     if (c != 1u) c = 1u;
+#     if (d != 0u) d = 0u;
+#     if (e != 1u) e = 1u;
+#     if (f != 0u) f = 0u;
+#
+#     if (a == 1u && b == 0u && c == 1u && d == 0u && e == 1u && f == 0u)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 108
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %102
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "buf0"
+               OpMemberName %10 0 "one"
+               OpName %12 ""
+               OpName %21 "b"
+               OpName %28 "c"
+               OpName %35 "d"
+               OpName %41 "e"
+               OpName %47 "f"
+               OpName %102 "_GLF_color"
+               OpMemberDecorate %10 0 Offset 0
+               OpDecorate %10 Block
+               OpDecorate %12 DescriptorSet 0
+               OpDecorate %12 Binding 0
+               OpDecorate %102 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 0
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 77
+         %10 = OpTypeStruct %6
+         %11 = OpTypePointer Uniform %10
+         %12 = OpVariable %11 Uniform
+         %13 = OpTypeInt 32 1
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Uniform %6
+         %19 = OpConstant %6 32
+         %22 = OpConstant %6 3243
+         %26 = OpConstant %6 33
+         %29 = OpConstant %6 23
+         %33 = OpConstant %6 345
+         %36 = OpConstant %6 2395
+         %42 = OpConstant %6 290485
+         %48 = OpConstant %6 44321
+         %54 = OpConstant %6 1
+         %55 = OpTypeBool
+         %60 = OpConstant %6 0
+         %99 = OpTypeFloat 32
+        %100 = OpTypeVector %99 4
+        %101 = OpTypePointer Output %100
+        %102 = OpVariable %101 Output
+        %103 = OpConstant %99 1
+        %104 = OpConstant %99 0
+        %105 = OpConstantComposite %100 %103 %104 %104 %103
+        %107 = OpConstantComposite %100 %104 %104 %104 %104
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %21 = OpVariable %7 Function
+         %28 = OpVariable %7 Function
+         %35 = OpVariable %7 Function
+         %41 = OpVariable %7 Function
+         %47 = OpVariable %7 Function
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %6 %16
+         %18 = OpIAdd %6 %9 %17
+         %20 = OpShiftRightLogical %6 %18 %19
+               OpStore %8 %20
+         %23 = OpAccessChain %15 %12 %14
+         %24 = OpLoad %6 %23
+         %25 = OpIAdd %6 %22 %24
+         %27 = OpShiftRightLogical %6 %25 %26
+               OpStore %21 %27
+         %30 = OpAccessChain %15 %12 %14
+         %31 = OpLoad %6 %30
+         %32 = OpIAdd %6 %29 %31
+         %34 = OpShiftRightLogical %6 %32 %33
+               OpStore %28 %34
+         %37 = OpAccessChain %15 %12 %14
+         %38 = OpLoad %6 %37
+         %39 = OpIAdd %6 %36 %38
+         %40 = OpShiftLeftLogical %6 %39 %19
+               OpStore %35 %40
+         %43 = OpAccessChain %15 %12 %14
+         %44 = OpLoad %6 %43
+         %45 = OpIAdd %6 %42 %44
+         %46 = OpShiftLeftLogical %6 %45 %26
+               OpStore %41 %46
+         %49 = OpAccessChain %15 %12 %14
+         %50 = OpLoad %6 %49
+         %51 = OpIAdd %6 %48 %50
+         %52 = OpShiftLeftLogical %6 %51 %33
+               OpStore %47 %52
+         %53 = OpLoad %6 %8
+         %56 = OpINotEqual %55 %53 %54
+               OpSelectionMerge %58 None
+               OpBranchConditional %56 %57 %58
+         %57 = OpLabel
+               OpStore %8 %54
+               OpBranch %58
+         %58 = OpLabel
+         %59 = OpLoad %6 %21
+         %61 = OpINotEqual %55 %59 %60
+               OpSelectionMerge %63 None
+               OpBranchConditional %61 %62 %63
+         %62 = OpLabel
+               OpStore %21 %60
+               OpBranch %63
+         %63 = OpLabel
+         %64 = OpLoad %6 %28
+         %65 = OpINotEqual %55 %64 %54
+               OpSelectionMerge %67 None
+               OpBranchConditional %65 %66 %67
+         %66 = OpLabel
+               OpStore %28 %54
+               OpBranch %67
+         %67 = OpLabel
+         %68 = OpLoad %6 %35
+         %69 = OpINotEqual %55 %68 %60
+               OpSelectionMerge %71 None
+               OpBranchConditional %69 %70 %71
+         %70 = OpLabel
+               OpStore %35 %60
+               OpBranch %71
+         %71 = OpLabel
+         %72 = OpLoad %6 %41
+         %73 = OpINotEqual %55 %72 %54
+               OpSelectionMerge %75 None
+               OpBranchConditional %73 %74 %75
+         %74 = OpLabel
+               OpStore %41 %54
+               OpBranch %75
+         %75 = OpLabel
+         %76 = OpLoad %6 %47
+         %77 = OpINotEqual %55 %76 %60
+               OpSelectionMerge %79 None
+               OpBranchConditional %77 %78 %79
+         %78 = OpLabel
+               OpStore %47 %60
+               OpBranch %79
+         %79 = OpLabel
+         %80 = OpLoad %6 %8
+         %81 = OpIEqual %55 %80 %54
+         %82 = OpLoad %6 %21
+         %83 = OpIEqual %55 %82 %60
+         %84 = OpLogicalAnd %55 %81 %83
+         %85 = OpLoad %6 %28
+         %86 = OpIEqual %55 %85 %54
+         %87 = OpLogicalAnd %55 %84 %86
+         %88 = OpLoad %6 %35
+         %89 = OpIEqual %55 %88 %60
+         %90 = OpLogicalAnd %55 %87 %89
+         %91 = OpLoad %6 %41
+         %92 = OpIEqual %55 %91 %54
+         %93 = OpLogicalAnd %55 %90 %92
+         %94 = OpLoad %6 %47
+         %95 = OpIEqual %55 %94 %60
+         %96 = OpLogicalAnd %55 %93 %95
+               OpSelectionMerge %98 None
+               OpBranchConditional %96 %97 %106
+         %97 = OpLabel
+               OpStore %102 %105
+               OpBranch %98
+        %106 = OpLabel
+               OpStore %102 %107
+               OpBranch %98
+         %98 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-shift-right-arithmetic.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-shift-right-arithmetic.amber
new file mode 100644
index 0000000..855274b
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-shift-right-arithmetic.amber
@@ -0,0 +1,110 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int i = 5;
+#     // If condition is always false.
+#     if (i >> 1 != 2)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 27
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %21
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %21 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %12 RelaxedPrecision
+               OpDecorate %21 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 5
+         %11 = OpConstant %6 1
+         %13 = OpConstant %6 2
+         %14 = OpTypeBool
+         %18 = OpTypeFloat 32
+         %19 = OpTypeVector %18 4
+         %20 = OpTypePointer Output %19
+         %21 = OpVariable %20 Output
+         %22 = OpConstant %18 0
+         %23 = OpConstantComposite %19 %22 %22 %22 %22
+         %25 = OpConstant %18 1
+         %26 = OpConstantComposite %19 %25 %22 %22 %25
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+         %10 = OpLoad %6 %8
+         %12 = OpShiftRightArithmetic %6 %10 %11
+         %15 = OpINotEqual %14 %12 %13
+               OpSelectionMerge %17 None
+               OpBranchConditional %15 %16 %24
+         %16 = OpLabel
+               OpStore %21 %23
+               OpBranch %17
+         %24 = OpLabel
+               OpStore %21 %26
+               OpBranch %17
+         %17 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-switch-udiv.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-switch-udiv.amber
new file mode 100644
index 0000000..21eef17
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-switch-udiv.amber
@@ -0,0 +1,113 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     uint a = 4u;
+#
+#     switch(a / 2u)
+#     {
+#         case 2u:
+#             // This branch is always executed.
+#             _GLF_color = vec4(1, 0, 0, 1);
+#             break;
+#         default:
+#             _GLF_color = vec4(0);
+#             break;
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 27
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %19
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %19 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %12 RelaxedPrecision
+               OpDecorate %19 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 0
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 4
+         %11 = OpConstant %6 2
+         %16 = OpTypeFloat 32
+         %17 = OpTypeVector %16 4
+         %18 = OpTypePointer Output %17
+         %19 = OpVariable %18 Output
+         %20 = OpConstant %16 1
+         %21 = OpConstant %16 0
+         %22 = OpConstantComposite %17 %20 %21 %21 %20
+         %24 = OpConstantComposite %17 %21 %21 %21 %21
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+         %10 = OpLoad %6 %8
+         %12 = OpUDiv %6 %10 %11
+               OpSelectionMerge %15 None
+               OpSwitch %12 %14 2 %13
+         %14 = OpLabel
+               OpStore %19 %24
+               OpBranch %15
+         %13 = OpLabel
+               OpStore %19 %22
+               OpBranch %15
+         %15 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-construct-extract.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-construct-extract.amber
new file mode 100644
index 0000000..89b2936
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-construct-extract.amber
@@ -0,0 +1,159 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 twoandthree; // (2.0, 3.0)
+# };
+#
+# void main()
+# {
+#     vec2 a = twoandthree;
+#     vec2 b = vec2(a.x, clamp(a, vec2(1), vec2(1)).y);
+#
+#     // Always true
+#     if (b.x == 2.0 && b.y == 1.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+#
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 51
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %46
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "a"
+               OpName %10 "buf0"
+               OpMemberName %10 0 "twoandthree"
+               OpName %12 ""
+               OpName %18 "b"
+               OpName %46 "_GLF_color"
+               OpMemberDecorate %10 0 Offset 0
+               OpDecorate %10 Block
+               OpDecorate %12 DescriptorSet 0
+               OpDecorate %12 Binding 0
+               OpDecorate %46 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpTypeStruct %7
+         %11 = OpTypePointer Uniform %10
+         %12 = OpVariable %11 Uniform
+         %13 = OpTypeInt 32 1
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Uniform %7
+         %19 = OpTypeInt 32 0
+         %20 = OpConstant %19 0
+         %21 = OpTypePointer Function %6
+         %25 = OpConstant %6 1
+         %26 = OpConstantComposite %7 %25 %25
+         %28 = OpConstant %19 1
+         %31 = OpTypeBool
+         %34 = OpConstant %6 2
+         %44 = OpTypeVector %6 4
+         %45 = OpTypePointer Output %44
+         %46 = OpVariable %45 Output
+         %47 = OpConstant %6 0
+         %48 = OpConstantComposite %44 %25 %47 %47 %25
+         %50 = OpConstantComposite %44 %47 %47 %47 %47
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %18 = OpVariable %8 Function
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %7 %16
+               OpStore %9 %17
+         %22 = OpAccessChain %21 %9 %20
+         %23 = OpLoad %6 %22
+         %24 = OpLoad %7 %9
+         %27 = OpExtInst %7 %1 FClamp %24 %26 %26
+         %29 = OpCompositeExtract %6 %27 1
+         %30 = OpCompositeConstruct %7 %23 %29
+               OpStore %18 %30
+         %32 = OpAccessChain %21 %18 %20
+         %33 = OpLoad %6 %32
+         %35 = OpFOrdEqual %31 %33 %34
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %37
+         %36 = OpLabel
+         %38 = OpAccessChain %21 %18 %28
+         %39 = OpLoad %6 %38
+         %40 = OpFOrdEqual %31 %39 %25
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpPhi %31 %35 %5 %40 %36
+               OpSelectionMerge %43 None
+               OpBranchConditional %41 %42 %49
+         %42 = OpLabel
+               OpStore %46 %48
+               OpBranch %43
+         %49 = OpLabel
+               OpStore %46 %50
+               OpBranch %43
+         %43 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# twoandthree
+BUFFER variant_twoandthree DATA_TYPE vec2<float> DATA
+ 2.0 3.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_twoandthree AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-dot-extract.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-dot-extract.amber
new file mode 100644
index 0000000..3a9cea7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-dot-extract.amber
@@ -0,0 +1,127 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float three;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // Always true.
+#     if(dot(vec4(1.0, 2.0, three, 4.0), vec4(0.0, 1.0, 0.0, 0.0)) == 2.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 32
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %28
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "three"
+               OpName %11 ""
+               OpName %28 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %28 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpConstant %6 1
+          %8 = OpConstant %6 2
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpTypeInt 32 1
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Uniform %6
+         %17 = OpConstant %6 4
+         %18 = OpTypeVector %6 4
+         %20 = OpConstant %6 0
+         %21 = OpConstantComposite %18 %20 %7 %20 %20
+         %23 = OpTypeBool
+         %27 = OpTypePointer Output %18
+         %28 = OpVariable %27 Output
+         %29 = OpConstantComposite %18 %7 %20 %20 %7
+         %31 = OpConstantComposite %18 %20 %20 %20 %20
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %6 %15
+         %19 = OpCompositeConstruct %18 %7 %8 %16 %17
+         %22 = OpDot %6 %19 %21
+         %24 = OpFOrdEqual %23 %22 %8
+               OpSelectionMerge %26 None
+               OpBranchConditional %24 %25 %30
+         %25 = OpLabel
+               OpStore %28 %29
+               OpBranch %26
+         %30 = OpLabel
+               OpStore %28 %31
+               OpBranch %26
+         %26 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE float DATA
+ 3.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-dot-no-extract.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-dot-no-extract.amber
new file mode 100644
index 0000000..daa7443
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-dot-no-extract.amber
@@ -0,0 +1,128 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float three;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // Always true.
+#     if(dot(vec2(2.0, three), vec2(0.0, 2.0)) == 6.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 33
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %28
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "three"
+               OpName %10 ""
+               OpName %28 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %28 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpConstant %6 2
+          %8 = OpTypeStruct %6
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpTypeInt 32 1
+         %12 = OpConstant %11 0
+         %13 = OpTypePointer Uniform %6
+         %16 = OpTypeVector %6 2
+         %18 = OpConstant %6 0
+         %19 = OpConstantComposite %16 %18 %7
+         %21 = OpConstant %6 6
+         %22 = OpTypeBool
+         %26 = OpTypeVector %6 4
+         %27 = OpTypePointer Output %26
+         %28 = OpVariable %27 Output
+         %29 = OpConstant %6 1
+         %30 = OpConstantComposite %26 %29 %18 %18 %29
+         %32 = OpConstantComposite %26 %18 %18 %18 %18
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %10 %12
+         %15 = OpLoad %6 %14
+         %17 = OpCompositeConstruct %16 %7 %15
+         %20 = OpDot %6 %17 %19
+         %23 = OpFOrdEqual %22 %20 %21
+               OpSelectionMerge %25 None
+               OpBranchConditional %23 %24 %31
+         %24 = OpLabel
+               OpStore %28 %30
+               OpBranch %25
+         %31 = OpLabel
+               OpStore %28 %32
+               OpBranch %25
+         %25 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE float DATA
+ 3.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-add-sub.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-add-sub.amber
new file mode 100644
index 0000000..c9cd0e5
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-add-sub.amber
@@ -0,0 +1,141 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int i = 5;
+#
+#     while(i >= 0)
+#     {
+#         i -= 3;
+#         i++;
+#     }
+#
+#     // If condition is always true.
+#     if (i == -1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %33 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %15 RelaxedPrecision
+               OpDecorate %20 RelaxedPrecision
+               OpDecorate %21 RelaxedPrecision
+               OpDecorate %22 RelaxedPrecision
+               OpDecorate %24 RelaxedPrecision
+               OpDecorate %25 RelaxedPrecision
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 5
+         %16 = OpConstant %6 0
+         %17 = OpTypeBool
+         %19 = OpConstant %6 3
+         %23 = OpConstant %6 1
+         %26 = OpConstant %6 -1
+         %30 = OpTypeFloat 32
+         %31 = OpTypeVector %30 4
+         %32 = OpTypePointer Output %31
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %30 1
+         %35 = OpConstant %30 0
+         %36 = OpConstantComposite %31 %34 %35 %35 %34
+         %38 = OpConstantComposite %31 %35 %35 %35 %35
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+               OpBranch %10
+         %10 = OpLabel
+               OpLoopMerge %12 %13 None
+               OpBranch %14
+         %14 = OpLabel
+         %15 = OpLoad %6 %8
+         %18 = OpSGreaterThanEqual %17 %15 %16
+               OpBranchConditional %18 %11 %12
+         %11 = OpLabel
+         %20 = OpLoad %6 %8
+         %21 = OpISub %6 %20 %19
+               OpStore %8 %21
+         %22 = OpLoad %6 %8
+         %24 = OpIAdd %6 %22 %23
+               OpStore %8 %24
+               OpBranch %13
+         %13 = OpLabel
+               OpBranch %10
+         %12 = OpLabel
+         %25 = OpLoad %6 %8
+         %27 = OpIEqual %17 %25 %26
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %37
+         %28 = OpLabel
+               OpStore %33 %36
+               OpBranch %29
+         %37 = OpLabel
+               OpStore %33 %38
+               OpBranch %29
+         %29 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-sub-add.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-sub-add.amber
new file mode 100644
index 0000000..e74cea1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-sub-add.amber
@@ -0,0 +1,159 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     bool b = false;
+#
+#     // A single loop with i = 1.
+#     for(int i = 1; i > 0; i--)
+#     {
+#         float a = 1.0 + float(i);
+#
+#         // If condition is always true.
+#         if(2.0 - a == 0.0)
+#             b = true;
+#     }
+#
+#     // If condition is always true.
+#     if (b)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 48
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %44
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "b"
+               OpName %12 "i"
+               OpName %24 "a"
+               OpName %44 "_GLF_color"
+               OpDecorate %12 RelaxedPrecision
+               OpDecorate %19 RelaxedPrecision
+               OpDecorate %26 RelaxedPrecision
+               OpDecorate %37 RelaxedPrecision
+               OpDecorate %38 RelaxedPrecision
+               OpDecorate %44 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypePointer Function %6
+          %9 = OpConstantFalse %6
+         %10 = OpTypeInt 32 1
+         %11 = OpTypePointer Function %10
+         %13 = OpConstant %10 1
+         %20 = OpConstant %10 0
+         %22 = OpTypeFloat 32
+         %23 = OpTypePointer Function %22
+         %25 = OpConstant %22 1
+         %29 = OpConstant %22 2
+         %32 = OpConstant %22 0
+         %36 = OpConstantTrue %6
+         %42 = OpTypeVector %22 4
+         %43 = OpTypePointer Output %42
+         %44 = OpVariable %43 Output
+         %45 = OpConstantComposite %42 %25 %32 %32 %25
+         %47 = OpConstantComposite %42 %32 %32 %32 %32
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %12 = OpVariable %11 Function
+         %24 = OpVariable %23 Function
+               OpStore %8 %9
+               OpStore %12 %13
+               OpBranch %14
+         %14 = OpLabel
+               OpLoopMerge %16 %17 None
+               OpBranch %18
+         %18 = OpLabel
+         %19 = OpLoad %10 %12
+         %21 = OpSGreaterThan %6 %19 %20
+               OpBranchConditional %21 %15 %16
+         %15 = OpLabel
+         %26 = OpLoad %10 %12
+         %27 = OpConvertSToF %22 %26
+         %28 = OpFAdd %22 %25 %27
+               OpStore %24 %28
+         %30 = OpLoad %22 %24
+         %31 = OpFSub %22 %29 %30
+         %33 = OpFOrdEqual %6 %31 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpStore %8 %36
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %37 = OpLoad %10 %12
+         %38 = OpISub %10 %37 %13
+               OpStore %12 %38
+               OpBranch %14
+         %16 = OpLabel
+         %39 = OpLoad %6 %8
+               OpSelectionMerge %41 None
+               OpBranchConditional %39 %40 %46
+         %40 = OpLabel
+               OpStore %44 %45
+               OpBranch %41
+         %46 = OpLabel
+               OpStore %44 %47
+               OpBranch %41
+         %41 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-sub-sub.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-sub-sub.amber
new file mode 100644
index 0000000..e044728
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-sub-sub.amber
@@ -0,0 +1,160 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     bool b = false;
+#
+#     // A single loop with i = 1.
+#     for(int i = 1; i > 0; i--)
+#     {
+#         float a = 3.0 - float(i);
+#
+#         // If condition is always true.
+#         if(2.0 - a == 0.0)
+#             b = true;
+#     }
+#
+#     // If condition is always true.
+#     if (b)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 49
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %44
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "b"
+               OpName %12 "i"
+               OpName %24 "a"
+               OpName %44 "_GLF_color"
+               OpDecorate %12 RelaxedPrecision
+               OpDecorate %19 RelaxedPrecision
+               OpDecorate %26 RelaxedPrecision
+               OpDecorate %37 RelaxedPrecision
+               OpDecorate %38 RelaxedPrecision
+               OpDecorate %44 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypePointer Function %6
+          %9 = OpConstantFalse %6
+         %10 = OpTypeInt 32 1
+         %11 = OpTypePointer Function %10
+         %13 = OpConstant %10 1
+         %20 = OpConstant %10 0
+         %22 = OpTypeFloat 32
+         %23 = OpTypePointer Function %22
+         %25 = OpConstant %22 3
+         %29 = OpConstant %22 2
+         %32 = OpConstant %22 0
+         %36 = OpConstantTrue %6
+         %42 = OpTypeVector %22 4
+         %43 = OpTypePointer Output %42
+         %44 = OpVariable %43 Output
+         %45 = OpConstant %22 1
+         %46 = OpConstantComposite %42 %45 %32 %32 %45
+         %48 = OpConstantComposite %42 %32 %32 %32 %32
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %12 = OpVariable %11 Function
+         %24 = OpVariable %23 Function
+               OpStore %8 %9
+               OpStore %12 %13
+               OpBranch %14
+         %14 = OpLabel
+               OpLoopMerge %16 %17 None
+               OpBranch %18
+         %18 = OpLabel
+         %19 = OpLoad %10 %12
+         %21 = OpSGreaterThan %6 %19 %20
+               OpBranchConditional %21 %15 %16
+         %15 = OpLabel
+         %26 = OpLoad %10 %12
+         %27 = OpConvertSToF %22 %26
+         %28 = OpFSub %22 %25 %27
+               OpStore %24 %28
+         %30 = OpLoad %22 %24
+         %31 = OpFSub %22 %29 %30
+         %33 = OpFOrdEqual %6 %31 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpStore %8 %36
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %37 = OpLoad %10 %12
+         %38 = OpISub %10 %37 %13
+               OpStore %12 %38
+               OpBranch %14
+         %16 = OpLabel
+         %39 = OpLoad %6 %8
+               OpSelectionMerge %41 None
+               OpBranchConditional %39 %40 %47
+         %40 = OpLabel
+               OpStore %44 %46
+               OpBranch %41
+         %47 = OpLabel
+               OpStore %44 %48
+               OpBranch %41
+         %41 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-redundant-mix.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-redundant-mix.amber
new file mode 100644
index 0000000..4a2849e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-redundant-mix.amber
@@ -0,0 +1,129 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // Always true.
+#     if(mix(injectionSwitch, vec2(1), vec2(0)) == vec2(0, 1))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %30
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "injectionSwitch"
+               OpName %10 ""
+               OpName %30 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %30 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypeStruct %7
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpTypeInt 32 1
+         %12 = OpConstant %11 0
+         %13 = OpTypePointer Uniform %7
+         %16 = OpConstant %6 1
+         %17 = OpConstantComposite %7 %16 %16
+         %18 = OpConstant %6 0
+         %19 = OpConstantComposite %7 %18 %18
+         %21 = OpConstantComposite %7 %18 %16
+         %22 = OpTypeBool
+         %23 = OpTypeVector %22 2
+         %28 = OpTypeVector %6 4
+         %29 = OpTypePointer Output %28
+         %30 = OpVariable %29 Output
+         %31 = OpConstantComposite %28 %16 %18 %18 %16
+         %33 = OpConstantComposite %28 %18 %18 %18 %18
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %10 %12
+         %15 = OpLoad %7 %14
+         %20 = OpExtInst %7 %1 FMix %15 %17 %19
+         %24 = OpFOrdEqual %23 %20 %21
+         %25 = OpAll %22 %24
+               OpSelectionMerge %27 None
+               OpBranchConditional %25 %26 %32
+         %26 = OpLabel
+               OpStore %30 %31
+               OpBranch %27
+         %32 = OpLabel
+               OpStore %30 %33
+               OpBranch %27
+         %27 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-shuffle-extract.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-shuffle-extract.amber
new file mode 100644
index 0000000..f105ccc
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-shuffle-extract.amber
@@ -0,0 +1,131 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // Always true.
+#     if(mix(injectionSwitch, vec2(1), bvec2(false)).x == 0.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %32
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "injectionSwitch"
+               OpName %10 ""
+               OpName %32 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %32 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypeStruct %7
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpTypeInt 32 1
+         %12 = OpConstant %11 0
+         %13 = OpTypePointer Uniform %7
+         %16 = OpConstant %6 1
+         %17 = OpConstantComposite %7 %16 %16
+         %18 = OpTypeBool
+         %19 = OpTypeVector %18 2
+         %20 = OpConstantFalse %18
+         %21 = OpConstantComposite %19 %20 %20
+         %23 = OpTypeInt 32 0
+         %24 = OpConstant %23 0
+         %26 = OpConstant %6 0
+         %30 = OpTypeVector %6 4
+         %31 = OpTypePointer Output %30
+         %32 = OpVariable %31 Output
+         %33 = OpConstantComposite %30 %16 %26 %26 %16
+         %35 = OpConstantComposite %30 %26 %26 %26 %26
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %10 %12
+         %15 = OpLoad %7 %14
+         %22 = OpSelect %7 %21 %17 %15
+         %25 = OpCompositeExtract %6 %22 0
+         %27 = OpFOrdEqual %18 %25 %26
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %34
+         %28 = OpLabel
+               OpStore %32 %33
+               OpBranch %29
+         %34 = OpLabel
+               OpStore %32 %35
+               OpBranch %29
+         %29 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-shuffle-mix.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-shuffle-mix.amber
new file mode 100644
index 0000000..b9c2c0e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-shuffle-mix.amber
@@ -0,0 +1,151 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 threeandfour; // (3.0, 4.0)
+# };
+#
+# void main()
+# {
+#     vec4 v = vec4(2, 3, 4, 5);
+#     // mix returns (1.0, 6.0)
+#     v.xy = mix(vec2(2, 6), vec2(1.0, threeandfour.y), bvec2(true, false));
+#     if (v == vec4(1, 6, 4, 5))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 51
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %46
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %19 "buf0"
+               OpMemberName %19 0 "threeandfour"
+               OpName %21 ""
+               OpName %46 "_GLF_color"
+               OpMemberDecorate %19 0 Offset 0
+               OpDecorate %19 Block
+               OpDecorate %21 DescriptorSet 0
+               OpDecorate %21 Binding 0
+               OpDecorate %46 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 2
+         %11 = OpConstant %6 3
+         %12 = OpConstant %6 4
+         %13 = OpConstant %6 5
+         %14 = OpConstantComposite %7 %10 %11 %12 %13
+         %15 = OpTypeVector %6 2
+         %16 = OpConstant %6 6
+         %17 = OpConstantComposite %15 %10 %16
+         %18 = OpConstant %6 1
+         %19 = OpTypeStruct %15
+         %20 = OpTypePointer Uniform %19
+         %21 = OpVariable %20 Uniform
+         %22 = OpTypeInt 32 1
+         %23 = OpConstant %22 0
+         %24 = OpTypeInt 32 0
+         %25 = OpConstant %24 1
+         %26 = OpTypePointer Uniform %6
+         %30 = OpTypeBool
+         %31 = OpTypeVector %30 2
+         %32 = OpConstantTrue %30
+         %33 = OpConstantFalse %30
+         %34 = OpConstantComposite %31 %32 %33
+         %39 = OpConstantComposite %7 %18 %16 %12 %13
+         %40 = OpTypeVector %30 4
+         %45 = OpTypePointer Output %7
+         %46 = OpVariable %45 Output
+         %47 = OpConstant %6 0
+         %48 = OpConstantComposite %7 %18 %47 %47 %18
+         %50 = OpConstantComposite %7 %47 %47 %47 %47
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+               OpStore %9 %14
+         %27 = OpAccessChain %26 %21 %23 %25
+         %28 = OpLoad %6 %27
+         %29 = OpCompositeConstruct %15 %18 %28
+         %35 = OpSelect %15 %34 %29 %17
+         %36 = OpLoad %7 %9
+         %37 = OpVectorShuffle %7 %36 %35 4 5 2 3
+               OpStore %9 %37
+         %38 = OpLoad %7 %9
+         %41 = OpFOrdEqual %40 %38 %39
+         %42 = OpAll %30 %41
+               OpSelectionMerge %44 None
+               OpBranchConditional %42 %43 %49
+         %43 = OpLabel
+               OpStore %46 %48
+               OpBranch %44
+         %49 = OpLabel
+               OpStore %46 %50
+               OpBranch %44
+         %44 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# threeandfour
+BUFFER variant_threeandfour DATA_TYPE vec2<float> DATA
+ 3.0 4.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_threeandfour AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-split-vector-init.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-split-vector-init.amber
new file mode 100644
index 0000000..5d94c97
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-split-vector-init.amber
@@ -0,0 +1,116 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec4 v;
+#     v.xy = vec2(1);
+#     v.zw = vec2(2);
+#     // Always true.
+#     if (v == vec4(1, 1, 2, 2))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 33
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %28
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %28 "_GLF_color"
+               OpDecorate %28 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpTypeVector %6 2
+         %11 = OpConstant %6 1
+         %12 = OpConstantComposite %10 %11 %11
+         %15 = OpConstant %6 2
+         %16 = OpConstantComposite %10 %15 %15
+         %20 = OpConstantComposite %7 %11 %11 %15 %15
+         %21 = OpTypeBool
+         %22 = OpTypeVector %21 4
+         %27 = OpTypePointer Output %7
+         %28 = OpVariable %27 Output
+         %29 = OpConstant %6 0
+         %30 = OpConstantComposite %7 %11 %29 %29 %11
+         %32 = OpConstantComposite %7 %29 %29 %29 %29
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %13 = OpLoad %7 %9
+         %14 = OpVectorShuffle %7 %13 %12 4 5 2 3
+               OpStore %9 %14
+         %17 = OpLoad %7 %9
+         %18 = OpVectorShuffle %7 %17 %16 0 1 4 5
+               OpStore %9 %18
+         %19 = OpLoad %7 %9
+         %23 = OpFOrdEqual %22 %19 %20
+         %24 = OpAll %21 %23
+               OpSelectionMerge %26 None
+               OpBranchConditional %24 %25 %31
+         %25 = OpLabel
+               OpStore %28 %30
+               OpBranch %26
+         %31 = OpLabel
+               OpStore %28 %32
+               OpBranch %26
+         %26 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-if-conversion-identical-branches.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-if-conversion-identical-branches.amber
new file mode 100644
index 0000000..9c4a93e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-if-conversion-identical-branches.amber
@@ -0,0 +1,152 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific if condition conversion path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# void main()
+# {
+#     int a = zero;
+#
+#     // Always true.
+#     if (a == 0)
+#         a++;
+#     else
+#         a++;
+#
+#     // Always true.
+#     if (a == 1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 40
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %34
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "zero"
+               OpName %11 ""
+               OpName %34 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %34 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpConstant %6 0
+         %13 = OpTypePointer Uniform %6
+         %17 = OpTypeBool
+         %22 = OpConstant %6 1
+         %31 = OpTypeFloat 32
+         %32 = OpTypeVector %31 4
+         %33 = OpTypePointer Output %32
+         %34 = OpVariable %33 Output
+         %35 = OpConstant %31 1
+         %36 = OpConstant %31 0
+         %37 = OpConstantComposite %32 %35 %36 %36 %35
+         %39 = OpConstantComposite %32 %36 %36 %36 %36
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %14 = OpAccessChain %13 %11 %12
+         %15 = OpLoad %6 %14
+               OpStore %8 %15
+         %16 = OpLoad %6 %8
+         %18 = OpIEqual %17 %16 %12
+               OpSelectionMerge %20 None
+               OpBranchConditional %18 %19 %24
+         %19 = OpLabel
+         %21 = OpLoad %6 %8
+         %23 = OpIAdd %6 %21 %22
+               OpStore %8 %23
+               OpBranch %20
+         %24 = OpLabel
+         %25 = OpLoad %6 %8
+         %26 = OpIAdd %6 %25 %22
+               OpStore %8 %26
+               OpBranch %20
+         %20 = OpLabel
+         %27 = OpLoad %6 %8
+         %28 = OpIEqual %17 %27 %22
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %38
+         %29 = OpLabel
+               OpStore %34 %37
+               OpBranch %30
+         %38 = OpLabel
+               OpStore %34 %39
+               OpBranch %30
+         %30 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-empty-block.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-empty-block.amber
new file mode 100644
index 0000000..9442923
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-empty-block.amber
@@ -0,0 +1,150 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific inlining optimization path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--reduce-load-size'
+# '--convert-local-access-chains'
+# '--eliminate-local-single-store'
+# '--simplify-instructions'
+# '--combine-access-chains'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--convert-local-access-chains'
+# '--convert-local-access-chains'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# vec4 func()
+# {
+#     float x = 1.0;
+#
+#     // Always false.
+#     if (gl_FragCoord.x < 0.0)
+#         x = 0.5;
+#
+#     return vec4(x, 0, 0, 1);
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     do
+#     {
+#         _GLF_color = func();
+#     }
+#     while (false);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 40
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %15 %32
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "func("
+               OpName %12 "x"
+               OpName %15 "gl_FragCoord"
+               OpName %32 "_GLF_color"
+               OpDecorate %15 BuiltIn FragCoord
+               OpDecorate %32 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypeFunction %7
+         %11 = OpTypePointer Function %6
+         %13 = OpConstant %6 1
+         %14 = OpTypePointer Input %7
+         %15 = OpVariable %14 Input
+         %16 = OpTypeInt 32 0
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Input %6
+         %21 = OpConstant %6 0
+         %22 = OpTypeBool
+         %26 = OpConstant %6 0.5
+         %31 = OpTypePointer Output %7
+         %32 = OpVariable %31 Output
+         %33 = OpConstantComposite %7 %21 %21 %21 %21
+         %39 = OpConstantFalse %22
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpStore %32 %33
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpFunctionCall %7 %9
+               OpStore %32 %38
+               OpLoopMerge %36 %34 None
+               OpBranchConditional %39 %34 %36
+         %36 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %12 = OpVariable %11 Function
+               OpStore %12 %13
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %23 = OpFOrdLessThan %22 %20 %21
+               OpSelectionMerge %25 None
+               OpBranchConditional %23 %24 %25
+         %24 = OpLabel
+               OpStore %12 %26
+               OpBranch %25
+         %25 = OpLabel
+         %27 = OpLoad %6 %12
+         %28 = OpCompositeConstruct %7 %27 %21 %21 %13
+               OpReturnValue %28
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-nested-loops.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-nested-loops.amber
new file mode 100644
index 0000000..bab4bfe
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-nested-loops.amber
@@ -0,0 +1,212 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific inlining optimization path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-dead-inserts'
+# '--eliminate-local-single-store'
+# '--scalar-replacement=100'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--scalar-replacement=100'
+# '--eliminate-dead-branches'
+# '--ccp'
+# '--ccp'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--vector-dce'
+# '--eliminate-dead-branches'
+# '--scalar-replacement=100'
+# '--eliminate-local-single-store'
+# '--combine-access-chains'
+# '--redundancy-elimination'
+# '--ccp'
+# '--eliminate-dead-code-aggressive'
+# '--private-to-local'
+# '--eliminate-local-single-block'
+# '--eliminate-local-multi-store'
+# '--eliminate-local-single-block'
+# '--ccp'
+# spirv-opt commit hash: 96354f5047bf35765af49657304357e00264e5f9
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# vec4 returnRed()
+# {
+#     do
+#     {
+#         // Always false.
+#         if(zero == 1)
+#         {
+#             return vec4(1, 0, 0, 1);
+#         }
+#     }
+#     while(false);
+#     return vec4(1, 0, 0, 1);
+# }
+#
+# void main()
+# {
+#     do
+#     {
+#         _GLF_color = returnRed();
+#     }
+#     while(false);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 63
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %40
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "returnRed("
+               OpName %16 "buf0"
+               OpMemberName %16 0 "zero"
+               OpName %18 ""
+               OpName %40 "_GLF_color"
+               OpMemberDecorate %16 0 Offset 0
+               OpDecorate %16 Block
+               OpDecorate %18 DescriptorSet 0
+               OpDecorate %18 Binding 0
+               OpDecorate %40 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypeFunction %7
+         %15 = OpTypeInt 32 1
+         %16 = OpTypeStruct %15
+         %17 = OpTypePointer Uniform %16
+         %18 = OpVariable %17 Uniform
+         %19 = OpConstant %15 0
+         %20 = OpTypePointer Uniform %15
+         %23 = OpConstant %15 1
+         %24 = OpTypeBool
+         %28 = OpConstant %6 1
+         %29 = OpConstant %6 0
+         %30 = OpConstantComposite %7 %28 %29 %29 %28
+         %32 = OpConstantFalse %24
+         %39 = OpTypePointer Output %7
+         %40 = OpVariable %39 Output
+         %43 = OpTypePointer Function %7
+         %49 = OpTypePointer Function %24
+         %51 = OpConstantTrue %24
+         %61 = OpUndef %7
+         %62 = OpUndef %24
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %41 = OpFunctionCall %7 %9
+               OpStore %40 %41
+               OpLoopMerge %37 %35 None
+               OpBranchConditional %32 %35 %37
+         %37 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %50 = OpVariable %49 Function %32
+         %44 = OpVariable %43 Function
+               OpBranch %46
+         %46 = OpLabel
+         %56 = OpPhi %24 %32 %10 %62 %48
+               OpLoopMerge %42 %48 None
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %12
+         %12 = OpLabel
+         %21 = OpAccessChain %20 %18 %19
+         %22 = OpLoad %15 %21
+         %25 = OpIEqual %24 %22 %23
+               OpSelectionMerge %27 None
+               OpBranchConditional %25 %26 %27
+         %26 = OpLabel
+               OpStore %50 %51
+               OpStore %44 %30
+               OpBranch %13
+         %27 = OpLabel
+               OpBranch %14
+         %14 = OpLabel
+               OpBranchConditional %32 %11 %13
+         %13 = OpLabel
+         %58 = OpPhi %7 %30 %26 %61 %14
+         %54 = OpPhi %24 %51 %26 %32 %14
+               OpSelectionMerge %52 None
+               OpBranchConditional %54 %42 %52
+         %52 = OpLabel
+               OpStore %50 %51
+               OpStore %44 %30
+               OpBranch %42
+         %48 = OpLabel
+               OpBranch %46
+         %42 = OpLabel
+         %57 = OpPhi %7 %58 %13 %30 %52
+               OpReturnValue %57
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-unreachable-func.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-unreachable-func.amber
new file mode 100644
index 0000000..7fa5717
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-unreachable-func.amber
@@ -0,0 +1,156 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific inlining optimization path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# float func()
+# {
+#     float x = 2.0;
+#     if (gl_FragCoord.x == 12.0)
+#     {
+#         if (gl_FragCoord.y == 13.0)
+#         {
+#             x += 1.0;
+#         }
+#         return x;
+#     }
+#
+#     return 1.0;
+# }
+#
+# void main()
+# {
+#     if (false)
+#     {
+#         _GLF_color = vec4(func());
+#     }
+#     else
+#     {
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 50
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %15 %44
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %11 "x"
+               OpName %15 "gl_FragCoord"
+               OpName %44 "_GLF_color"
+               OpDecorate %15 BuiltIn FragCoord
+               OpDecorate %44 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypePointer Function %6
+         %12 = OpConstant %6 2
+         %13 = OpTypeVector %6 4
+         %14 = OpTypePointer Input %13
+         %15 = OpVariable %14 Input
+         %16 = OpTypeInt 32 0
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Input %6
+         %21 = OpConstant %6 12
+         %22 = OpTypeBool
+         %26 = OpConstant %16 1
+         %29 = OpConstant %6 13
+         %33 = OpConstant %6 1
+         %40 = OpConstantFalse %22
+         %43 = OpTypePointer Output %13
+         %44 = OpVariable %43 Output
+         %48 = OpConstant %6 0
+         %49 = OpConstantComposite %13 %33 %48 %48 %33
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpSelectionMerge %42 None
+               OpBranchConditional %40 %41 %47
+         %41 = OpLabel
+         %45 = OpFunctionCall %6 %8
+         %46 = OpCompositeConstruct %13 %45 %45 %45 %45
+               OpStore %44 %46
+               OpBranch %42
+         %47 = OpLabel
+               OpStore %44 %49
+               OpBranch %42
+         %42 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %11 = OpVariable %10 Function
+               OpStore %11 %12
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %23 = OpFOrdEqual %22 %20 %21
+               OpSelectionMerge %25 None
+               OpBranchConditional %23 %24 %25
+         %24 = OpLabel
+         %27 = OpAccessChain %18 %15 %26
+         %28 = OpLoad %6 %27
+         %30 = OpFOrdEqual %22 %28 %29
+               OpSelectionMerge %32 None
+               OpBranchConditional %30 %31 %32
+         %31 = OpLabel
+         %34 = OpLoad %6 %11
+         %35 = OpFAdd %6 %34 %33
+               OpStore %11 %35
+               OpBranch %32
+         %32 = OpLabel
+         %36 = OpLoad %6 %11
+               OpReturnValue %36
+         %25 = OpLabel
+               OpReturnValue %33
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-intervalmap-set-stop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-intervalmap-set-stop.amber
new file mode 100644
index 0000000..3e5ce2b
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-intervalmap-set-stop.amber
@@ -0,0 +1,264 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific interval map code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# vec3 func()
+# {
+#     vec2 v = vec2(1);
+#     int i = 0;
+#     for(int k = 0; k < 2; k++)
+#     {
+#         if(v.y + 1.0 > 4.0) // Always false.
+#             break;
+#
+#         v.y = 1.0;
+#         i++;
+#     }
+#
+#     if(i < 10) // Always true.
+#         return vec3(1, 0, 0);
+#     else
+#         return vec3(0, 0, 1);
+# }
+#
+# void main()
+# {
+#     vec3 data[2];
+#
+#     // Writes data[0] = (1, 0, 0).
+#     for(int j = 0; j < 1; j++)
+#         data[j] = func();
+#
+#     // Writes data[1] = (1, 0, 0).
+#     for(int j = 0; j < 1; j++)
+#         data[4*j + 1] = func();
+#
+#     if (data[0] == vec3(1, 0, 0) && data[1] == vec3(1, 0, 0)) // Always true.
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 113
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %109
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "func("
+               OpName %13 "v"
+               OpName %18 "i"
+               OpName %20 "k"
+               OpName %59 "j"
+               OpName %70 "data"
+               OpName %77 "j"
+               OpName %109 "_GLF_color"
+               OpDecorate %109 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 3
+          %8 = OpTypeFunction %7
+         %11 = OpTypeVector %6 2
+         %12 = OpTypePointer Function %11
+         %14 = OpConstant %6 1
+         %15 = OpConstantComposite %11 %14 %14
+         %16 = OpTypeInt 32 1
+         %17 = OpTypePointer Function %16
+         %19 = OpConstant %16 0
+         %27 = OpConstant %16 2
+         %28 = OpTypeBool
+         %30 = OpTypeInt 32 0
+         %31 = OpConstant %30 1
+         %32 = OpTypePointer Function %6
+         %36 = OpConstant %6 4
+         %43 = OpConstant %16 1
+         %48 = OpConstant %16 10
+         %52 = OpConstant %6 0
+         %53 = OpConstantComposite %7 %14 %52 %52
+         %56 = OpConstantComposite %7 %52 %52 %14
+         %67 = OpConstant %30 2
+         %68 = OpTypeArray %7 %67
+         %69 = OpTypePointer Function %68
+         %73 = OpTypePointer Function %7
+         %85 = OpConstant %16 4
+         %95 = OpTypeVector %28 3
+        %107 = OpTypeVector %6 4
+        %108 = OpTypePointer Output %107
+        %109 = OpVariable %108 Output
+        %110 = OpConstantComposite %107 %14 %52 %52 %14
+        %112 = OpConstantComposite %107 %52 %52 %52 %52
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %59 = OpVariable %17 Function
+         %70 = OpVariable %69 Function
+         %77 = OpVariable %17 Function
+               OpStore %59 %19
+               OpBranch %60
+         %60 = OpLabel
+               OpLoopMerge %62 %63 None
+               OpBranch %64
+         %64 = OpLabel
+         %65 = OpLoad %16 %59
+         %66 = OpSLessThan %28 %65 %43
+               OpBranchConditional %66 %61 %62
+         %61 = OpLabel
+         %71 = OpLoad %16 %59
+         %72 = OpFunctionCall %7 %9
+         %74 = OpAccessChain %73 %70 %71
+               OpStore %74 %72
+               OpBranch %63
+         %63 = OpLabel
+         %75 = OpLoad %16 %59
+         %76 = OpIAdd %16 %75 %43
+               OpStore %59 %76
+               OpBranch %60
+         %62 = OpLabel
+               OpStore %77 %19
+               OpBranch %78
+         %78 = OpLabel
+               OpLoopMerge %80 %81 None
+               OpBranch %82
+         %82 = OpLabel
+         %83 = OpLoad %16 %77
+         %84 = OpSLessThan %28 %83 %43
+               OpBranchConditional %84 %79 %80
+         %79 = OpLabel
+         %86 = OpLoad %16 %77
+         %87 = OpIMul %16 %85 %86
+         %88 = OpIAdd %16 %87 %43
+         %89 = OpFunctionCall %7 %9
+         %90 = OpAccessChain %73 %70 %88
+               OpStore %90 %89
+               OpBranch %81
+         %81 = OpLabel
+         %91 = OpLoad %16 %77
+         %92 = OpIAdd %16 %91 %43
+               OpStore %77 %92
+               OpBranch %78
+         %80 = OpLabel
+         %93 = OpAccessChain %73 %70 %19
+         %94 = OpLoad %7 %93
+         %96 = OpFOrdEqual %95 %94 %53
+         %97 = OpAll %28 %96
+               OpSelectionMerge %99 None
+               OpBranchConditional %97 %98 %99
+         %98 = OpLabel
+        %100 = OpAccessChain %73 %70 %43
+        %101 = OpLoad %7 %100
+        %102 = OpFOrdEqual %95 %101 %53
+        %103 = OpAll %28 %102
+               OpBranch %99
+         %99 = OpLabel
+        %104 = OpPhi %28 %97 %80 %103 %98
+               OpSelectionMerge %106 None
+               OpBranchConditional %104 %105 %111
+        %105 = OpLabel
+               OpStore %109 %110
+               OpBranch %106
+        %111 = OpLabel
+               OpStore %109 %112
+               OpBranch %106
+        %106 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %13 = OpVariable %12 Function
+         %18 = OpVariable %17 Function
+         %20 = OpVariable %17 Function
+               OpStore %13 %15
+               OpStore %18 %19
+               OpStore %20 %19
+               OpBranch %21
+         %21 = OpLabel
+               OpLoopMerge %23 %24 None
+               OpBranch %25
+         %25 = OpLabel
+         %26 = OpLoad %16 %20
+         %29 = OpSLessThan %28 %26 %27
+               OpBranchConditional %29 %22 %23
+         %22 = OpLabel
+         %33 = OpAccessChain %32 %13 %31
+         %34 = OpLoad %6 %33
+         %35 = OpFAdd %6 %34 %14
+         %37 = OpFOrdGreaterThan %28 %35 %36
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %38 %39
+         %38 = OpLabel
+               OpBranch %23
+         %39 = OpLabel
+         %41 = OpAccessChain %32 %13 %31
+               OpStore %41 %14
+         %42 = OpLoad %16 %18
+         %44 = OpIAdd %16 %42 %43
+               OpStore %18 %44
+               OpBranch %24
+         %24 = OpLabel
+         %45 = OpLoad %16 %20
+         %46 = OpIAdd %16 %45 %43
+               OpStore %20 %46
+               OpBranch %21
+         %23 = OpLabel
+         %47 = OpLoad %16 %18
+         %49 = OpSLessThan %28 %47 %48
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %50 %55
+         %50 = OpLabel
+               OpReturnValue %53
+         %55 = OpLabel
+               OpReturnValue %56
+         %51 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-liveinterval-different-dest.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-liveinterval-different-dest.amber
new file mode 100644
index 0000000..8f500ed
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-liveinterval-different-dest.amber
@@ -0,0 +1,242 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific live interval code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# vec3 func()
+# {
+#     vec2 v = vec2(1);
+#     int i = 0;
+#     for(int k = 0; k < 2; k++)
+#     {
+#         if(v.y + 1.0 > 4.0) // Always false.
+#             break;
+#
+#         v.y = 1.0;
+#         i++;
+#     }
+#
+#     if(i < 10) // Always true.
+#         return vec3(1, 0, 0);
+#     else
+#         return vec3(0, 0, 1);
+# }
+#
+# void main()
+# {
+#     vec3 data[2];
+#
+#     // Writes data[0] = (1, 0, 0).
+#     for(int j = 0; j < 1; j++)
+#         data[j] = func();
+#
+#     // Writes data[1] = (1, 0, 0).
+#     for(int j = 0; j < 1; j++)
+#         data[4*j + 1] = func();
+#
+#     _GLF_color = vec4(data[0], 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 102
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %95
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "func("
+               OpName %13 "v"
+               OpName %18 "i"
+               OpName %20 "k"
+               OpName %59 "j"
+               OpName %70 "data"
+               OpName %77 "j"
+               OpName %95 "_GLF_color"
+               OpDecorate %95 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 3
+          %8 = OpTypeFunction %7
+         %11 = OpTypeVector %6 2
+         %12 = OpTypePointer Function %11
+         %14 = OpConstant %6 1
+         %15 = OpConstantComposite %11 %14 %14
+         %16 = OpTypeInt 32 1
+         %17 = OpTypePointer Function %16
+         %19 = OpConstant %16 0
+         %27 = OpConstant %16 2
+         %28 = OpTypeBool
+         %30 = OpTypeInt 32 0
+         %31 = OpConstant %30 1
+         %32 = OpTypePointer Function %6
+         %36 = OpConstant %6 4
+         %43 = OpConstant %16 1
+         %48 = OpConstant %16 10
+         %52 = OpConstant %6 0
+         %53 = OpConstantComposite %7 %14 %52 %52
+         %56 = OpConstantComposite %7 %52 %52 %14
+         %67 = OpConstant %30 2
+         %68 = OpTypeArray %7 %67
+         %69 = OpTypePointer Function %68
+         %73 = OpTypePointer Function %7
+         %85 = OpConstant %16 4
+         %93 = OpTypeVector %6 4
+         %94 = OpTypePointer Output %93
+         %95 = OpVariable %94 Output
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %59 = OpVariable %17 Function
+         %70 = OpVariable %69 Function
+         %77 = OpVariable %17 Function
+               OpStore %59 %19
+               OpBranch %60
+         %60 = OpLabel
+               OpLoopMerge %62 %63 None
+               OpBranch %64
+         %64 = OpLabel
+         %65 = OpLoad %16 %59
+         %66 = OpSLessThan %28 %65 %43
+               OpBranchConditional %66 %61 %62
+         %61 = OpLabel
+         %71 = OpLoad %16 %59
+         %72 = OpFunctionCall %7 %9
+         %74 = OpAccessChain %73 %70 %71
+               OpStore %74 %72
+               OpBranch %63
+         %63 = OpLabel
+         %75 = OpLoad %16 %59
+         %76 = OpIAdd %16 %75 %43
+               OpStore %59 %76
+               OpBranch %60
+         %62 = OpLabel
+               OpStore %77 %19
+               OpBranch %78
+         %78 = OpLabel
+               OpLoopMerge %80 %81 None
+               OpBranch %82
+         %82 = OpLabel
+         %83 = OpLoad %16 %77
+         %84 = OpSLessThan %28 %83 %43
+               OpBranchConditional %84 %79 %80
+         %79 = OpLabel
+         %86 = OpLoad %16 %77
+         %87 = OpIMul %16 %85 %86
+         %88 = OpIAdd %16 %87 %43
+         %89 = OpFunctionCall %7 %9
+         %90 = OpAccessChain %73 %70 %88
+               OpStore %90 %89
+               OpBranch %81
+         %81 = OpLabel
+         %91 = OpLoad %16 %77
+         %92 = OpIAdd %16 %91 %43
+               OpStore %77 %92
+               OpBranch %78
+         %80 = OpLabel
+         %96 = OpAccessChain %73 %70 %19
+         %97 = OpLoad %7 %96
+         %98 = OpCompositeExtract %6 %97 0
+         %99 = OpCompositeExtract %6 %97 1
+        %100 = OpCompositeExtract %6 %97 2
+        %101 = OpCompositeConstruct %93 %98 %99 %100 %14
+               OpStore %95 %101
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %13 = OpVariable %12 Function
+         %18 = OpVariable %17 Function
+         %20 = OpVariable %17 Function
+               OpStore %13 %15
+               OpStore %18 %19
+               OpStore %20 %19
+               OpBranch %21
+         %21 = OpLabel
+               OpLoopMerge %23 %24 None
+               OpBranch %25
+         %25 = OpLabel
+         %26 = OpLoad %16 %20
+         %29 = OpSLessThan %28 %26 %27
+               OpBranchConditional %29 %22 %23
+         %22 = OpLabel
+         %33 = OpAccessChain %32 %13 %31
+         %34 = OpLoad %6 %33
+         %35 = OpFAdd %6 %34 %14
+         %37 = OpFOrdGreaterThan %28 %35 %36
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %38 %39
+         %38 = OpLabel
+               OpBranch %23
+         %39 = OpLabel
+         %41 = OpAccessChain %32 %13 %31
+               OpStore %41 %14
+         %42 = OpLoad %16 %18
+         %44 = OpIAdd %16 %42 %43
+               OpStore %18 %44
+               OpBranch %24
+         %24 = OpLabel
+         %45 = OpLoad %16 %20
+         %46 = OpIAdd %16 %45 %43
+               OpStore %20 %46
+               OpBranch %21
+         %23 = OpLabel
+         %47 = OpLoad %16 %18
+         %49 = OpSLessThan %28 %47 %48
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %50 %55
+         %50 = OpLabel
+               OpReturnValue %53
+         %55 = OpLabel
+               OpReturnValue %56
+         %51 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-merge-return-condition-twice.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-merge-return-condition-twice.amber
new file mode 100644
index 0000000..9ff1b42
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-merge-return-condition-twice.amber
@@ -0,0 +1,195 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific return merge path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--simplify-instructions'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--private-to-local'
+# '--eliminate-local-single-block'
+# '--eliminate-local-single-block'
+# '--if-conversion'
+# '--eliminate-local-multi-store'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float three;
+# };
+#
+# // Always returns 1.0.
+# float func()
+# {
+#     float b = 2.0;
+#
+#     do
+#     {
+#         // Always false.
+#         if (three == 0.0)
+#             break;
+#
+#         // Always false.
+#         if (three == 0.0)
+#             return 1.0;
+#
+#         b = 1.0;
+#     }
+#     while(false);
+#
+#     return b;
+# }
+#
+# void main()
+# {
+#     if (func() == 1.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %48
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %11 "b"
+               OpName %17 "buf0"
+               OpMemberName %17 0 "three"
+               OpName %19 ""
+               OpName %48 "_GLF_color"
+               OpMemberDecorate %17 0 Offset 0
+               OpDecorate %17 Block
+               OpDecorate %19 DescriptorSet 0
+               OpDecorate %19 Binding 0
+               OpDecorate %48 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypePointer Function %6
+         %12 = OpConstant %6 2
+         %17 = OpTypeStruct %6
+         %18 = OpTypePointer Uniform %17
+         %19 = OpVariable %18 Uniform
+         %20 = OpTypeInt 32 1
+         %21 = OpConstant %20 0
+         %22 = OpTypePointer Uniform %6
+         %25 = OpConstant %6 0
+         %26 = OpTypeBool
+         %36 = OpConstant %6 1
+         %38 = OpConstantFalse %26
+         %46 = OpTypeVector %6 4
+         %47 = OpTypePointer Output %46
+         %48 = OpVariable %47 Output
+         %49 = OpConstantComposite %46 %36 %25 %25 %36
+         %51 = OpConstantComposite %46 %25 %25 %25 %25
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %42 = OpFunctionCall %6 %8
+         %43 = OpFOrdEqual %26 %42 %36
+               OpSelectionMerge %45 None
+               OpBranchConditional %43 %44 %50
+         %44 = OpLabel
+               OpStore %48 %49
+               OpBranch %45
+         %50 = OpLabel
+               OpStore %48 %51
+               OpBranch %45
+         %45 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %11 = OpVariable %10 Function
+               OpStore %11 %12
+               OpBranch %13
+         %13 = OpLabel
+         %53 = OpPhi %6 %12 %9 %36 %16
+               OpLoopMerge %15 %16 None
+               OpBranch %14
+         %14 = OpLabel
+         %23 = OpAccessChain %22 %19 %21
+         %24 = OpLoad %6 %23
+         %27 = OpFOrdEqual %26 %24 %25
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %29
+         %28 = OpLabel
+               OpBranch %15
+         %29 = OpLabel
+         %31 = OpAccessChain %22 %19 %21
+         %32 = OpLoad %6 %31
+         %33 = OpFOrdEqual %26 %32 %25
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpReturnValue %36
+         %35 = OpLabel
+               OpStore %11 %36
+               OpBranch %16
+         %16 = OpLabel
+               OpBranchConditional %38 %13 %15
+         %15 = OpLabel
+         %52 = OpPhi %6 %53 %28 %36 %16
+               OpReturnValue %52
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE float DATA
+ 3.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-modf-integer-to-private.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-modf-integer-to-private.amber
new file mode 100644
index 0000000..3681355
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-modf-integer-to-private.amber
@@ -0,0 +1,106 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific private to local path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# float a;
+#
+# void main()
+# {
+#     modf(5.0, a);
+#
+#     // Always true.
+#     if (a == 5.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 24
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %18
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "a"
+               OpName %18 "_GLF_color"
+               OpDecorate %18 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpConstant %6 5
+          %8 = OpTypePointer Private %6
+          %9 = OpVariable %8 Private
+         %12 = OpTypeBool
+         %16 = OpTypeVector %6 4
+         %17 = OpTypePointer Output %16
+         %18 = OpVariable %17 Output
+         %19 = OpConstant %6 1
+         %20 = OpConstant %6 0
+         %21 = OpConstantComposite %16 %19 %20 %20 %19
+         %23 = OpConstantComposite %16 %20 %20 %20 %20
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %10 = OpExtInst %6 %1 Modf %7 %9
+         %11 = OpLoad %6 %9
+         %13 = OpFOrdEqual %12 %11 %7
+               OpSelectionMerge %15 None
+               OpBranchConditional %13 %14 %22
+         %14 = OpLabel
+               OpStore %18 %21
+               OpBranch %15
+         %22 = OpLabel
+               OpStore %18 %23
+               OpBranch %15
+         %15 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-reduce-load-array-replace-extract.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-reduce-load-array-replace-extract.amber
new file mode 100644
index 0000000..e4237b8
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-reduce-load-array-replace-extract.amber
@@ -0,0 +1,183 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific load size reduction path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-Os'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# struct S
+# {
+#     int x[1];
+# };
+#
+# // Function returns 1 or 2.
+# int func(S s, int a)
+# {
+#     _GLF_color = vec4(0);
+#
+#     if(s.x[zero] == a)
+#         return 1;
+#
+#     return 2;
+# }
+#
+# void main()
+# {
+#     S s; // Uninitialized. Contents don't matter.
+#     int res = func(s, s.x[0]);
+#     // Always true.
+#     if (res == 1 || res == 2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 97
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %21
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %21 "_GLF_color"
+               OpName %25 "buf0"
+               OpMemberName %25 0 "zero"
+               OpName %27 ""
+               OpDecorate %21 Location 0
+               OpMemberDecorate %25 0 RelaxedPrecision
+               OpMemberDecorate %25 0 Offset 0
+               OpDecorate %25 Block
+               OpDecorate %27 DescriptorSet 0
+               OpDecorate %27 Binding 0
+               OpDecorate %49 RelaxedPrecision
+               OpDecorate %79 RelaxedPrecision
+               OpDecorate %81 RelaxedPrecision
+               OpDecorate %88 RelaxedPrecision
+               OpDecorate %96 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 1
+          %9 = OpTypeArray %6 %8
+         %12 = OpTypePointer Function %6
+         %18 = OpTypeFloat 32
+         %19 = OpTypeVector %18 4
+         %20 = OpTypePointer Output %19
+         %21 = OpVariable %20 Output
+         %22 = OpConstant %18 0
+         %23 = OpConstantComposite %19 %22 %22 %22 %22
+         %24 = OpConstant %6 0
+         %25 = OpTypeStruct %6
+         %26 = OpTypePointer Uniform %25
+         %27 = OpVariable %26 Uniform
+         %28 = OpTypePointer Uniform %6
+         %34 = OpTypeBool
+         %38 = OpConstant %6 1
+         %40 = OpConstant %6 2
+         %58 = OpConstant %18 1
+         %59 = OpConstantComposite %19 %58 %22 %22 %58
+         %87 = OpTypePointer Function %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %88 = OpVariable %87 Function
+         %89 = OpLoad %9 %88
+         %49 = OpCompositeExtract %6 %89 0
+               OpBranch %74
+         %74 = OpLabel
+               OpLoopMerge %75 %76 None
+               OpBranch %77
+         %77 = OpLabel
+               OpStore %21 %23
+         %78 = OpAccessChain %28 %27 %24
+         %79 = OpLoad %6 %78
+         %94 = OpAccessChain %12 %88 %79
+         %81 = OpLoad %6 %94
+         %83 = OpIEqual %34 %81 %49
+               OpSelectionMerge %84 None
+               OpBranchConditional %83 %85 %84
+         %85 = OpLabel
+               OpBranch %75
+         %84 = OpLabel
+               OpBranch %75
+         %76 = OpLabel
+               OpBranch %74
+         %75 = OpLabel
+         %96 = OpPhi %6 %38 %85 %40 %84
+         %52 = OpIEqual %34 %96 %38
+         %54 = OpIEqual %34 %96 %40
+         %55 = OpLogicalOr %34 %52 %54
+               OpSelectionMerge %57 None
+               OpBranchConditional %55 %56 %60
+         %60 = OpLabel
+               OpStore %21 %23
+               OpBranch %57
+         %56 = OpLabel
+               OpStore %21 %59
+               OpBranch %57
+         %57 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-reduce-load-replace-extract.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-reduce-load-replace-extract.amber
new file mode 100644
index 0000000..ef6ef3c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-reduce-load-replace-extract.amber
@@ -0,0 +1,228 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific load size reduction path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# struct S
+# {
+#     int x;
+#     int y;
+# } ;
+#
+# void func(inout S arg)
+# {
+#     arg.y = 1;
+# }
+#
+# void main()
+# {
+#     float a = 5.0;
+#
+#     do
+#     {
+#         S b[2];
+#         b[one].x = 1;
+#
+#         // Always true.
+#         if (b[1].x == 1)
+#         {
+#             // Always true.
+#             if (one == 1)
+#                 break;
+#
+#             // Unreachable code.
+#             func(b[1]);
+#             a = float(b[1].y);
+#         }
+#
+#         // Unreachable code.
+#         a = 0.0;
+#     }
+#     while(false);
+#
+#     if (a == 5.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 71
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %66
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "S"
+               OpMemberName %7 0 "x"
+               OpMemberName %7 1 "y"
+               OpName %11 "func(struct-S-i1-i11;"
+               OpName %10 "arg"
+               OpName %18 "a"
+               OpName %28 "b"
+               OpName %29 "buf0"
+               OpMemberName %29 0 "one"
+               OpName %31 ""
+               OpName %49 "param"
+               OpName %66 "_GLF_color"
+               OpMemberDecorate %29 0 Offset 0
+               OpDecorate %29 Block
+               OpDecorate %31 DescriptorSet 0
+               OpDecorate %31 Binding 0
+               OpDecorate %66 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6 %6
+          %8 = OpTypePointer Function %7
+          %9 = OpTypeFunction %2 %8
+         %13 = OpConstant %6 1
+         %14 = OpTypePointer Function %6
+         %16 = OpTypeFloat 32
+         %17 = OpTypePointer Function %16
+         %19 = OpConstant %16 5
+         %24 = OpTypeInt 32 0
+         %25 = OpConstant %24 2
+         %26 = OpTypeArray %7 %25
+         %27 = OpTypePointer Function %26
+         %29 = OpTypeStruct %6
+         %30 = OpTypePointer Uniform %29
+         %31 = OpVariable %30 Uniform
+         %32 = OpConstant %6 0
+         %33 = OpTypePointer Uniform %6
+         %39 = OpTypeBool
+         %58 = OpConstant %16 0
+         %59 = OpConstantFalse %39
+         %64 = OpTypeVector %16 4
+         %65 = OpTypePointer Output %64
+         %66 = OpVariable %65 Output
+         %67 = OpConstant %16 1
+         %68 = OpConstantComposite %64 %67 %58 %58 %67
+         %70 = OpConstantComposite %64 %58 %58 %58 %58
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %18 = OpVariable %17 Function
+         %28 = OpVariable %27 Function
+         %49 = OpVariable %8 Function
+               OpStore %18 %19
+               OpBranch %20
+         %20 = OpLabel
+               OpLoopMerge %22 %23 None
+               OpBranch %21
+         %21 = OpLabel
+         %34 = OpAccessChain %33 %31 %32
+         %35 = OpLoad %6 %34
+         %36 = OpAccessChain %14 %28 %35 %32
+               OpStore %36 %13
+         %37 = OpAccessChain %14 %28 %13 %32
+         %38 = OpLoad %6 %37
+         %40 = OpIEqual %39 %38 %13
+               OpSelectionMerge %42 None
+               OpBranchConditional %40 %41 %42
+         %41 = OpLabel
+         %43 = OpAccessChain %33 %31 %32
+         %44 = OpLoad %6 %43
+         %45 = OpIEqual %39 %44 %13
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %46 %47
+         %46 = OpLabel
+               OpBranch %22
+         %47 = OpLabel
+         %50 = OpAccessChain %8 %28 %13
+         %51 = OpLoad %7 %50
+               OpStore %49 %51
+         %52 = OpFunctionCall %2 %11 %49
+         %53 = OpLoad %7 %49
+         %54 = OpAccessChain %8 %28 %13
+               OpStore %54 %53
+         %55 = OpAccessChain %14 %28 %13 %13
+         %56 = OpLoad %6 %55
+         %57 = OpConvertSToF %16 %56
+               OpStore %18 %57
+               OpBranch %42
+         %42 = OpLabel
+               OpStore %18 %58
+               OpBranch %23
+         %23 = OpLabel
+               OpBranchConditional %59 %20 %22
+         %22 = OpLabel
+         %60 = OpLoad %16 %18
+         %61 = OpFOrdEqual %39 %60 %19
+               OpSelectionMerge %63 None
+               OpBranchConditional %61 %62 %69
+         %62 = OpLabel
+               OpStore %66 %68
+               OpBranch %63
+         %69 = OpLabel
+               OpStore %66 %70
+               OpBranch %63
+         %63 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %11 = OpFunction %2 None %9
+         %10 = OpFunctionParameter %8
+         %12 = OpLabel
+         %15 = OpAccessChain %14 %10 %13
+               OpStore %15 %13
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplification-while-inside-for.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplification-while-inside-for.amber
new file mode 100644
index 0000000..5ec04b6
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplification-while-inside-for.amber
@@ -0,0 +1,200 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific code simplification path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+# layout(set = 0, binding = 1) uniform buf1
+# {
+#     int zero;
+# };
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     for(int i = 0; i < one; i++)
+#     {
+#         do
+#         {
+#             // Always true.
+#             if(one == 1)
+#                 _GLF_color = vec4(1, 0, 0, 1);
+#         }
+#         while(false);
+#     }
+#
+#     vec4 v;
+#     v.y = float(zero);
+#     _GLF_color.y = v.y;
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 61
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %9
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "_GLF_color"
+               OpName %14 "i"
+               OpName %22 "buf0"
+               OpMemberName %22 0 "one"
+               OpName %24 ""
+               OpName %46 "v"
+               OpName %47 "buf1"
+               OpMemberName %47 0 "zero"
+               OpName %49 ""
+               OpDecorate %9 Location 0
+               OpMemberDecorate %22 0 Offset 0
+               OpDecorate %22 Block
+               OpDecorate %24 DescriptorSet 0
+               OpDecorate %24 Binding 0
+               OpMemberDecorate %47 0 Offset 0
+               OpDecorate %47 Block
+               OpDecorate %49 DescriptorSet 0
+               OpDecorate %49 Binding 1
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Output %7
+          %9 = OpVariable %8 Output
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10 %10 %10
+         %12 = OpTypeInt 32 1
+         %13 = OpTypePointer Function %12
+         %15 = OpConstant %12 0
+         %22 = OpTypeStruct %12
+         %23 = OpTypePointer Uniform %22
+         %24 = OpVariable %23 Uniform
+         %25 = OpTypePointer Uniform %12
+         %28 = OpTypeBool
+         %36 = OpConstant %12 1
+         %40 = OpConstant %6 1
+         %41 = OpConstantComposite %7 %40 %10 %10 %40
+         %42 = OpConstantFalse %28
+         %45 = OpTypePointer Function %7
+         %47 = OpTypeStruct %12
+         %48 = OpTypePointer Uniform %47
+         %49 = OpVariable %48 Uniform
+         %53 = OpTypeInt 32 0
+         %54 = OpConstant %53 1
+         %55 = OpTypePointer Function %6
+         %59 = OpTypePointer Output %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpVariable %13 Function
+         %46 = OpVariable %45 Function
+               OpStore %9 %11
+               OpStore %14 %15
+               OpBranch %16
+         %16 = OpLabel
+               OpLoopMerge %18 %19 None
+               OpBranch %20
+         %20 = OpLabel
+         %21 = OpLoad %12 %14
+         %26 = OpAccessChain %25 %24 %15
+         %27 = OpLoad %12 %26
+         %29 = OpSLessThan %28 %21 %27
+               OpBranchConditional %29 %17 %18
+         %17 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+               OpLoopMerge %32 %33 None
+               OpBranch %31
+         %31 = OpLabel
+         %34 = OpAccessChain %25 %24 %15
+         %35 = OpLoad %12 %34
+         %37 = OpIEqual %28 %35 %36
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %38 %39
+         %38 = OpLabel
+               OpStore %9 %41
+               OpBranch %39
+         %39 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+               OpBranchConditional %42 %30 %32
+         %32 = OpLabel
+               OpBranch %19
+         %19 = OpLabel
+         %43 = OpLoad %12 %14
+         %44 = OpIAdd %12 %43 %36
+               OpStore %14 %44
+               OpBranch %16
+         %18 = OpLabel
+         %50 = OpAccessChain %25 %49 %15
+         %51 = OpLoad %12 %50
+         %52 = OpConvertSToF %6 %51
+         %56 = OpAccessChain %55 %46 %54
+               OpStore %56 %52
+         %57 = OpAccessChain %55 %46 %54
+         %58 = OpLoad %6 %57
+         %60 = OpAccessChain %59 %9 %54
+               OpStore %60 %58
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 1
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-single-block-elim-self-assign.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-single-block-elim-self-assign.amber
new file mode 100644
index 0000000..c20135c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-single-block-elim-self-assign.amber
@@ -0,0 +1,205 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific single block elimination path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#     vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# int g = 0;
+#
+# void main()
+# {
+#     while(g < int(injectionSwitch.x + 2.0)) {
+#         g++;
+#     }
+#
+#     // g is 2.
+#     int a = g;
+#
+#     // Always false.
+#     while(g < int(injectionSwitch.y)) {
+#         g++;
+#     }
+#
+#     a = a;
+#
+#     // Always true.
+#     if(a == 2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 64
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %58
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "g"
+               OpName %18 "buf0"
+               OpMemberName %18 0 "injectionSwitch"
+               OpName %20 ""
+               OpName %35 "a"
+               OpName %58 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %15 RelaxedPrecision
+               OpMemberDecorate %18 0 Offset 0
+               OpDecorate %18 Block
+               OpDecorate %20 DescriptorSet 0
+               OpDecorate %20 Binding 0
+               OpDecorate %31 RelaxedPrecision
+               OpDecorate %33 RelaxedPrecision
+               OpDecorate %35 RelaxedPrecision
+               OpDecorate %36 RelaxedPrecision
+               OpDecorate %42 RelaxedPrecision
+               OpDecorate %48 RelaxedPrecision
+               OpDecorate %49 RelaxedPrecision
+               OpDecorate %50 RelaxedPrecision
+               OpDecorate %51 RelaxedPrecision
+               OpDecorate %58 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Private %6
+          %8 = OpVariable %7 Private
+          %9 = OpConstant %6 0
+         %16 = OpTypeFloat 32
+         %17 = OpTypeVector %16 2
+         %18 = OpTypeStruct %17
+         %19 = OpTypePointer Uniform %18
+         %20 = OpVariable %19 Uniform
+         %21 = OpTypeInt 32 0
+         %22 = OpConstant %21 0
+         %23 = OpTypePointer Uniform %16
+         %26 = OpConstant %16 2
+         %29 = OpTypeBool
+         %32 = OpConstant %6 1
+         %34 = OpTypePointer Function %6
+         %43 = OpConstant %21 1
+         %52 = OpConstant %6 2
+         %56 = OpTypeVector %16 4
+         %57 = OpTypePointer Output %56
+         %58 = OpVariable %57 Output
+         %59 = OpConstant %16 1
+         %60 = OpConstant %16 0
+         %61 = OpConstantComposite %56 %59 %60 %60 %59
+         %63 = OpConstantComposite %56 %60 %60 %60 %60
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %35 = OpVariable %34 Function
+               OpStore %8 %9
+               OpBranch %10
+         %10 = OpLabel
+               OpLoopMerge %12 %13 None
+               OpBranch %14
+         %14 = OpLabel
+         %15 = OpLoad %6 %8
+         %24 = OpAccessChain %23 %20 %9 %22
+         %25 = OpLoad %16 %24
+         %27 = OpFAdd %16 %25 %26
+         %28 = OpConvertFToS %6 %27
+         %30 = OpSLessThan %29 %15 %28
+               OpBranchConditional %30 %11 %12
+         %11 = OpLabel
+         %31 = OpLoad %6 %8
+         %33 = OpIAdd %6 %31 %32
+               OpStore %8 %33
+               OpBranch %13
+         %13 = OpLabel
+               OpBranch %10
+         %12 = OpLabel
+         %36 = OpLoad %6 %8
+               OpStore %35 %36
+               OpBranch %37
+         %37 = OpLabel
+               OpLoopMerge %39 %40 None
+               OpBranch %41
+         %41 = OpLabel
+         %42 = OpLoad %6 %8
+         %44 = OpAccessChain %23 %20 %9 %43
+         %45 = OpLoad %16 %44
+         %46 = OpConvertFToS %6 %45
+         %47 = OpSLessThan %29 %42 %46
+               OpBranchConditional %47 %38 %39
+         %38 = OpLabel
+         %48 = OpLoad %6 %8
+         %49 = OpIAdd %6 %48 %32
+               OpStore %8 %49
+               OpBranch %40
+         %40 = OpLabel
+               OpBranch %37
+         %39 = OpLabel
+         %50 = OpLoad %6 %35
+               OpStore %35 %50
+         %51 = OpLoad %6 %35
+         %53 = OpIEqual %29 %51 %52
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %62
+         %54 = OpLabel
+               OpStore %58 %61
+               OpBranch %55
+         %62 = OpLabel
+               OpStore %58 %63
+               OpBranch %55
+         %55 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-ssa-rewrite-case-with-default.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-ssa-rewrite-case-with-default.amber
new file mode 100644
index 0000000..d9e861d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-ssa-rewrite-case-with-default.amber
@@ -0,0 +1,183 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific SSA rewrite path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# vec4 func()
+# {
+#     // Always true.
+#     if(one == 1)
+#         return vec4(1, 0, 0, 1);
+#     else
+#         return vec4(0);
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#     for(int i = 0; i <= one; i++)
+#     {
+#         switch(i)
+#         {
+#             case 1:
+#                 _GLF_color = func();
+#             case 0:
+#             default:
+#                 _GLF_color.y = 0.0;
+#                 break;
+#         }
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 58
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "func("
+               OpName %12 "buf0"
+               OpMemberName %12 0 "one"
+               OpName %14 ""
+               OpName %33 "_GLF_color"
+               OpName %35 "i"
+               OpMemberDecorate %12 0 Offset 0
+               OpDecorate %12 Block
+               OpDecorate %14 DescriptorSet 0
+               OpDecorate %14 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypeFunction %7
+         %11 = OpTypeInt 32 1
+         %12 = OpTypeStruct %11
+         %13 = OpTypePointer Uniform %12
+         %14 = OpVariable %13 Uniform
+         %15 = OpConstant %11 0
+         %16 = OpTypePointer Uniform %11
+         %19 = OpConstant %11 1
+         %20 = OpTypeBool
+         %24 = OpConstant %6 1
+         %25 = OpConstant %6 0
+         %26 = OpConstantComposite %7 %24 %25 %25 %24
+         %29 = OpConstantComposite %7 %25 %25 %25 %25
+         %32 = OpTypePointer Output %7
+         %33 = OpVariable %32 Output
+         %34 = OpTypePointer Function %11
+         %50 = OpTypeInt 32 0
+         %51 = OpConstant %50 1
+         %52 = OpTypePointer Output %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %35 = OpVariable %34 Function
+               OpStore %33 %29
+               OpStore %35 %15
+               OpBranch %36
+         %36 = OpLabel
+               OpLoopMerge %38 %39 None
+               OpBranch %40
+         %40 = OpLabel
+         %41 = OpLoad %11 %35
+         %42 = OpAccessChain %16 %14 %15
+         %43 = OpLoad %11 %42
+         %44 = OpSLessThanEqual %20 %41 %43
+               OpBranchConditional %44 %37 %38
+         %37 = OpLabel
+         %45 = OpLoad %11 %35
+               OpSelectionMerge %48 None
+               OpSwitch %45 %47 1 %46 0 %47
+         %47 = OpLabel
+         %53 = OpAccessChain %52 %33 %51
+               OpStore %53 %25
+               OpBranch %48
+         %46 = OpLabel
+         %49 = OpFunctionCall %7 %9
+               OpStore %33 %49
+               OpBranch %47
+         %48 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %56 = OpLoad %11 %35
+         %57 = OpIAdd %11 %56 %19
+               OpStore %35 %57
+               OpBranch %36
+         %38 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %17 = OpAccessChain %16 %14 %15
+         %18 = OpLoad %11 %17
+         %21 = OpIEqual %20 %18 %19
+               OpSelectionMerge %23 None
+               OpBranchConditional %21 %22 %28
+         %22 = OpLabel
+               OpReturnValue %26
+         %28 = OpLabel
+               OpReturnValue %29
+         %23 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-types-return-in-main-never-hit.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-types-return-in-main-never-hit.amber
new file mode 100644
index 0000000..277312c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-types-return-in-main-never-hit.amber
@@ -0,0 +1,156 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific types optimization path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--scalar-replacement=100'
+# '--scalar-replacement=100'
+# '--inline-entry-points-exhaustive'
+# '--private-to-local'
+# '--eliminate-local-single-block'
+# '--eliminate-dead-branches'
+# '--if-conversion'
+# '--combine-access-chains'
+# '--eliminate-dead-branches'
+# '--redundancy-elimination'
+# '--simplify-instructions'
+# '--private-to-local'
+# '--private-to-local'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# vec4 func()
+# {
+#     return vec4(1, 0, 0, 1);
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     if(one == 0) // Always false.
+#         return;
+#
+#     _GLF_color = func();
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %17
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "func("
+               OpName %17 "_GLF_color"
+               OpName %20 "buf0"
+               OpMemberName %20 0 "one"
+               OpName %22 ""
+               OpDecorate %17 Location 0
+               OpMemberDecorate %20 0 Offset 0
+               OpDecorate %20 Block
+               OpDecorate %22 DescriptorSet 0
+               OpDecorate %22 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypeFunction %7
+         %11 = OpConstant %6 1
+         %12 = OpConstant %6 0
+         %13 = OpConstantComposite %7 %11 %12 %12 %11
+         %16 = OpTypePointer Output %7
+         %17 = OpVariable %16 Output
+         %18 = OpConstantComposite %7 %12 %12 %12 %12
+         %19 = OpTypeInt 32 1
+         %20 = OpTypeStruct %19
+         %21 = OpTypePointer Uniform %20
+         %22 = OpVariable %21 Uniform
+         %23 = OpConstant %19 0
+         %24 = OpTypePointer Uniform %19
+         %27 = OpTypeBool
+         %33 = OpTypePointer Function %7
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %34 = OpVariable %33 Function
+               OpStore %17 %18
+         %25 = OpAccessChain %24 %22 %23
+         %26 = OpLoad %19 %25
+         %28 = OpIEqual %27 %26 %23
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %30
+         %29 = OpLabel
+               OpReturn
+         %30 = OpLabel
+               OpStore %34 %13
+               OpStore %17 %13
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+               OpReturnValue %13
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-dce-inc-unused-comp.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-dce-inc-unused-comp.amber
new file mode 100644
index 0000000..080e7db
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-dce-inc-unused-comp.amber
@@ -0,0 +1,166 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific vector DCE path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# void main()
+# {
+#     vec2 a = vec2(1);
+#
+#     if (zero == 1) // Always false.
+#         a.x += 1.0;
+#
+#     vec2 b = a.y + vec2(2, 3);
+#
+#     if (b == vec2(3, 4)) // Always true.
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 56
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %51
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "a"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "zero"
+               OpName %15 ""
+               OpName %32 "b"
+               OpName %51 "_GLF_color"
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+               OpDecorate %51 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstantComposite %7 %10 %10
+         %12 = OpTypeInt 32 1
+         %13 = OpTypeStruct %12
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpConstant %12 0
+         %17 = OpTypePointer Uniform %12
+         %20 = OpConstant %12 1
+         %21 = OpTypeBool
+         %25 = OpTypeInt 32 0
+         %26 = OpConstant %25 0
+         %27 = OpTypePointer Function %6
+         %33 = OpConstant %25 1
+         %36 = OpConstant %6 2
+         %37 = OpConstant %6 3
+         %38 = OpConstantComposite %7 %36 %37
+         %42 = OpConstant %6 4
+         %43 = OpConstantComposite %7 %37 %42
+         %44 = OpTypeVector %21 2
+         %49 = OpTypeVector %6 4
+         %50 = OpTypePointer Output %49
+         %51 = OpVariable %50 Output
+         %52 = OpConstant %6 0
+         %53 = OpConstantComposite %49 %10 %52 %52 %10
+         %55 = OpConstantComposite %49 %52 %52 %52 %52
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %32 = OpVariable %8 Function
+               OpStore %9 %11
+         %18 = OpAccessChain %17 %15 %16
+         %19 = OpLoad %12 %18
+         %22 = OpIEqual %21 %19 %20
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %24
+         %23 = OpLabel
+         %28 = OpAccessChain %27 %9 %26
+         %29 = OpLoad %6 %28
+         %30 = OpFAdd %6 %29 %10
+         %31 = OpAccessChain %27 %9 %26
+               OpStore %31 %30
+               OpBranch %24
+         %24 = OpLabel
+         %34 = OpAccessChain %27 %9 %33
+         %35 = OpLoad %6 %34
+         %39 = OpCompositeConstruct %7 %35 %35
+         %40 = OpFAdd %7 %39 %38
+               OpStore %32 %40
+         %41 = OpLoad %7 %32
+         %45 = OpFOrdEqual %44 %41 %43
+         %46 = OpAll %21 %45
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %47 %54
+         %47 = OpLabel
+               OpStore %51 %53
+               OpBranch %48
+         %54 = OpLabel
+               OpStore %51 %55
+               OpBranch %48
+         %48 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-dce-unused-component.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-dce-unused-component.amber
new file mode 100644
index 0000000..7fd0e0a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-dce-unused-component.amber
@@ -0,0 +1,121 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific vector DCE path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec2 a = vec2(1);
+#     a.x += 0.5;
+#     vec2 b = fract(a);
+#
+#     if (b.x == 0.5) // Always true.
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %31
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "a"
+               OpName %20 "b"
+               OpName %31 "_GLF_color"
+               OpDecorate %31 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstantComposite %7 %10 %10
+         %12 = OpConstant %6 0.5
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Function %6
+         %25 = OpTypeBool
+         %29 = OpTypeVector %6 4
+         %30 = OpTypePointer Output %29
+         %31 = OpVariable %30 Output
+         %32 = OpConstant %6 0
+         %33 = OpConstantComposite %29 %10 %32 %32 %10
+         %35 = OpConstantComposite %29 %32 %32 %32 %32
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %20 = OpVariable %8 Function
+               OpStore %9 %11
+         %16 = OpAccessChain %15 %9 %14
+         %17 = OpLoad %6 %16
+         %18 = OpFAdd %6 %17 %12
+         %19 = OpAccessChain %15 %9 %14
+               OpStore %19 %18
+         %21 = OpLoad %7 %9
+         %22 = OpExtInst %7 %1 Fract %21
+               OpStore %20 %22
+         %23 = OpAccessChain %15 %20 %14
+         %24 = OpLoad %6 %23
+         %26 = OpFOrdEqual %25 %24 %12
+               OpSelectionMerge %28 None
+               OpBranchConditional %26 %27 %34
+         %27 = OpLabel
+               OpStore %31 %33
+               OpBranch %28
+         %34 = OpLabel
+               OpStore %31 %35
+               OpBranch %28
+         %28 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/function-with-uniform-return.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/function-with-uniform-return.amber
new file mode 100644
index 0000000..f153253
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/function-with-uniform-return.amber
@@ -0,0 +1,199 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with uniform value as a return
+
+# The test passes because shader always writes color red
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   vec2 injectionSwitch;
+# };
+#
+# float fx(){
+#   if (gl_FragCoord.y >= 0.0)
+#     return injectionSwitch.y;
+#
+#   while(true){
+#     _GLF_color = vec4(1.0, 1.0, 1.0, 1.0);
+#   };
+# }
+#
+# void main()
+# {
+#   float x2 = 1.0;
+#   float B = 1.0;
+#
+#   _GLF_color = vec4(fx(), 0.0, 0.0, 1.0);
+#
+#   while (x2 > 2.0){
+#     float k0;
+#     k0 = fx() - fx();
+#     B = k0;
+#     x2 = B;
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 63
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %12 %40
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "fx("
+               OpName %12 "gl_FragCoord"
+               OpName %24 "buf0"
+               OpMemberName %24 0 "injectionSwitch"
+               OpName %26 ""
+               OpName %40 "_GLF_color"
+               OpName %45 "x2"
+               OpName %46 "B"
+               OpName %57 "k0"
+               OpDecorate %12 BuiltIn FragCoord
+               OpMemberDecorate %24 0 Offset 0
+               OpDecorate %24 Block
+               OpDecorate %26 DescriptorSet 0
+               OpDecorate %26 Binding 0
+               OpDecorate %40 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypeVector %6 4
+         %11 = OpTypePointer Input %10
+         %12 = OpVariable %11 Input
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 1
+         %15 = OpTypePointer Input %6
+         %18 = OpConstant %6 0
+         %19 = OpTypeBool
+         %23 = OpTypeVector %6 2
+         %24 = OpTypeStruct %23
+         %25 = OpTypePointer Uniform %24
+         %26 = OpVariable %25 Uniform
+         %27 = OpTypeInt 32 1
+         %28 = OpConstant %27 0
+         %29 = OpTypePointer Uniform %6
+         %38 = OpConstantTrue %19
+         %39 = OpTypePointer Output %10
+         %40 = OpVariable %39 Output
+         %41 = OpConstant %6 1
+         %42 = OpConstantComposite %10 %41 %41 %41 %41
+         %44 = OpTypePointer Function %6
+         %55 = OpConstant %6 2
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %45 = OpVariable %44 Function
+         %46 = OpVariable %44 Function
+         %57 = OpVariable %44 Function
+               OpStore %45 %41
+               OpStore %46 %41
+         %47 = OpFunctionCall %6 %8
+         %48 = OpCompositeConstruct %10 %47 %18 %18 %41
+               OpStore %40 %48
+               OpBranch %49
+         %49 = OpLabel
+               OpLoopMerge %51 %52 None
+               OpBranch %53
+         %53 = OpLabel
+         %54 = OpLoad %6 %45
+         %56 = OpFOrdGreaterThan %19 %54 %55
+               OpBranchConditional %56 %50 %51
+         %50 = OpLabel
+         %58 = OpFunctionCall %6 %8
+         %59 = OpFunctionCall %6 %8
+         %60 = OpFSub %6 %58 %59
+               OpStore %57 %60
+         %61 = OpLoad %6 %57
+               OpStore %46 %61
+         %62 = OpLoad %6 %46
+               OpStore %45 %62
+               OpBranch %52
+         %52 = OpLabel
+               OpBranch %49
+         %51 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %6 %16
+         %20 = OpFOrdGreaterThanEqual %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %22
+         %21 = OpLabel
+         %30 = OpAccessChain %29 %26 %28 %14
+         %31 = OpLoad %6 %30
+               OpReturnValue %31
+         %22 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+               OpLoopMerge %35 %36 None
+               OpBranch %37
+         %37 = OpLabel
+               OpBranchConditional %38 %34 %35
+         %34 = OpLabel
+               OpStore %40 %42
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %33
+         %35 = OpLabel
+         %43 = OpUndef %6
+               OpReturnValue %43
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/global-array-loops.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/global-array-loops.amber
new file mode 100644
index 0000000..08a4031
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/global-array-loops.amber
@@ -0,0 +1,404 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A loop that writes then reads a global array
+
+# The test passes because the first 4-iteration loop increments acc, and then the
+# shader writes red if acc == 4, which is always the case.
+
+# Optimized using spirv-opt with the following arguments:
+# '--reduce-load-size'
+# '--combine-access-chains'
+# '--ccp'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-code-aggressive'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--combine-access-chains'
+# '--scalar-replacement=100'
+# '--private-to-local'
+# '--convert-local-access-chains'
+# '--private-to-local'
+# '--scalar-replacement=100'
+# '--eliminate-local-single-block'
+# '--scalar-replacement=100'
+# '--vector-dce'
+# '--eliminate-local-multi-store'
+# '--redundancy-elimination'
+# '--eliminate-local-multi-store'
+# '--vector-dce'
+# '--inline-entry-points-exhaustive'
+# spirv-opt commit hash: 18b3b94567a9251a6f8491a6d07c4422abadd22c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# int globalNumbers[10];
+#
+# // Sets globalNumbers[0] to 1.
+# // We assume:
+# //  n == 0
+# //  globalNumbers[0] == 0
+# int setGlobalNumberZeroToOne(int n)
+# {
+#     for (
+#         int i = 0;
+#         i <= n;
+#         i++)
+#     {
+#         if (globalNumbers[n] <= 1)
+#         {
+#             globalNumbers[n] = 1;
+#         }
+#     }
+#     return 2;
+# }
+#
+# int yieldsZero()
+# {
+#     for (
+#         int i = 0;
+#         i < int(one);
+#         i++)
+#     {
+#         return i;
+#     }
+# }
+#
+# void main()
+# {
+#     int acc = 0;
+#     int localNumbers[2];
+#     for (
+#         int i = 0;
+#         i < 4;
+#         i++)
+#     {
+#         localNumbers[1] = yieldsZero();
+#         globalNumbers[0] = 0;
+#         setGlobalNumberZeroToOne(localNumbers[1]);
+#         acc += globalNumbers[int(one) - 1]; // acc += 1;
+#     }
+#
+#     // acc should be 4.
+#
+#     if (acc == 4)
+#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#     else
+#         _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 191
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %104
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %13 "yieldsZero("
+               OpName %30 "globalNumbers"
+               OpName %46 "i"
+               OpName %54 "buf0"
+               OpMemberName %54 0 "one"
+               OpName %56 ""
+               OpName %67 "acc"
+               OpName %68 "i"
+               OpName %80 "localNumbers"
+               OpName %84 "param"
+               OpName %104 "_GLF_color"
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %30 RelaxedPrecision
+               OpDecorate %46 RelaxedPrecision
+               OpMemberDecorate %54 0 Offset 0
+               OpDecorate %54 Block
+               OpDecorate %56 DescriptorSet 0
+               OpDecorate %56 Binding 0
+               OpDecorate %67 RelaxedPrecision
+               OpDecorate %68 RelaxedPrecision
+               OpDecorate %80 RelaxedPrecision
+               OpDecorate %86 RelaxedPrecision
+               OpDecorate %93 RelaxedPrecision
+               OpDecorate %95 RelaxedPrecision
+               OpDecorate %97 RelaxedPrecision
+               OpDecorate %104 Location 0
+               OpDecorate %110 RelaxedPrecision
+               OpDecorate %122 RelaxedPrecision
+               OpDecorate %129 RelaxedPrecision
+               OpDecorate %131 RelaxedPrecision
+               OpDecorate %143 RelaxedPrecision
+               OpDecorate %144 RelaxedPrecision
+               OpDecorate %146 RelaxedPrecision
+               OpDecorate %147 RelaxedPrecision
+               OpDecorate %148 RelaxedPrecision
+               OpDecorate %161 RelaxedPrecision
+               OpDecorate %160 RelaxedPrecision
+               OpDecorate %156 RelaxedPrecision
+               OpDecorate %167 RelaxedPrecision
+               OpDecorate %168 RelaxedPrecision
+               OpDecorate %169 RelaxedPrecision
+               OpDecorate %178 RelaxedPrecision
+               OpDecorate %186 RelaxedPrecision
+               OpDecorate %190 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+         %12 = OpTypeFunction %6
+         %16 = OpConstant %6 0
+         %24 = OpTypeBool
+         %26 = OpTypeInt 32 0
+         %27 = OpConstant %26 10
+         %28 = OpTypeArray %6 %27
+         %29 = OpTypePointer Private %28
+         %32 = OpTypePointer Private %6
+         %35 = OpConstant %6 1
+         %53 = OpTypeFloat 32
+         %54 = OpTypeStruct %53
+         %55 = OpTypePointer Uniform %54
+         %56 = OpVariable %55 Uniform
+         %57 = OpTypePointer Uniform %53
+         %75 = OpConstant %6 4
+         %77 = OpConstant %26 2
+         %78 = OpTypeArray %6 %77
+         %79 = OpTypePointer Function %78
+        %102 = OpTypeVector %53 4
+        %103 = OpTypePointer Output %102
+        %104 = OpVariable %103 Output
+        %105 = OpConstant %53 1
+        %106 = OpConstant %53 0
+        %107 = OpConstantComposite %102 %105 %106 %106 %105
+        %109 = OpConstantComposite %102 %106 %106 %106 %105
+        %136 = OpConstantFalse %24
+        %137 = OpTypePointer Function %24
+        %139 = OpConstantTrue %24
+        %142 = OpTypePointer Function %28
+        %164 = OpUndef %6
+        %165 = OpUndef %24
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %166 = OpVariable %137 Function %136
+        %167 = OpVariable %7 Function
+        %168 = OpVariable %7 Function
+        %169 = OpVariable %7 Function
+         %30 = OpVariable %142 Function
+        %110 = OpVariable %7 Function
+         %67 = OpVariable %7 Function
+         %68 = OpVariable %7 Function
+         %80 = OpVariable %79 Function
+         %84 = OpVariable %7 Function
+               OpStore %67 %16
+               OpStore %68 %16
+               OpBranch %69
+         %69 = OpLabel
+        %147 = OpPhi %6 %16 %5 %95 %72
+        %146 = OpPhi %6 %16 %5 %97 %72
+               OpLoopMerge %71 %72 None
+               OpBranch %73
+         %73 = OpLabel
+         %76 = OpSLessThan %24 %146 %75
+               OpBranchConditional %76 %70 %71
+         %70 = OpLabel
+               OpStore %166 %136
+               OpBranch %170
+        %170 = OpLabel
+        %172 = OpPhi %24 %136 %70 %165 %171
+               OpLoopMerge %173 %171 None
+               OpBranch %174
+        %174 = OpLabel
+               OpStore %168 %16
+               OpBranch %175
+        %175 = OpLabel
+        %177 = OpPhi %24 %172 %174 %165 %176
+        %178 = OpPhi %6 %16 %174 %164 %176
+               OpLoopMerge %179 %176 None
+               OpBranch %180
+        %180 = OpLabel
+        %181 = OpAccessChain %57 %56 %16
+        %182 = OpLoad %53 %181
+        %183 = OpConvertFToS %6 %182
+        %184 = OpSLessThan %24 %178 %183
+               OpBranchConditional %184 %185 %179
+        %185 = OpLabel
+               OpStore %166 %139
+               OpStore %167 %178
+               OpBranch %179
+        %176 = OpLabel
+               OpBranch %175
+        %179 = OpLabel
+        %186 = OpPhi %6 %164 %180 %178 %185
+        %187 = OpPhi %24 %177 %180 %139 %185
+               OpSelectionMerge %188 None
+               OpBranchConditional %187 %173 %188
+        %188 = OpLabel
+        %189 = OpUndef %6
+               OpStore %166 %139
+               OpStore %167 %189
+               OpBranch %173
+        %171 = OpLabel
+               OpBranch %170
+        %173 = OpLabel
+        %190 = OpPhi %6 %186 %179 %189 %188
+               OpStore %169 %190
+         %81 = OpLoad %6 %169
+        %143 = OpLoad %78 %80
+        %144 = OpCompositeInsert %78 %81 %143 1
+               OpStore %80 %144
+         %83 = OpAccessChain %7 %30 %16
+               OpStore %83 %16
+         %85 = OpAccessChain %7 %80 %35
+         %86 = OpCompositeExtract %6 %144 1
+               OpStore %84 %86
+               OpStore %110 %16
+               OpBranch %112
+        %112 = OpLabel
+        %148 = OpPhi %6 %16 %173 %129 %114
+               OpLoopMerge %113 %114 None
+               OpBranch %115
+        %115 = OpLabel
+        %118 = OpSLessThanEqual %24 %148 %86
+               OpBranchConditional %118 %119 %113
+        %119 = OpLabel
+        %121 = OpAccessChain %7 %30 %86
+        %122 = OpLoad %6 %121
+        %123 = OpSLessThanEqual %24 %122 %35
+               OpSelectionMerge %124 None
+               OpBranchConditional %123 %125 %124
+        %125 = OpLabel
+               OpStore %121 %35
+               OpBranch %124
+        %124 = OpLabel
+               OpBranch %114
+        %114 = OpLabel
+        %129 = OpIAdd %6 %148 %35
+               OpStore %110 %129
+               OpBranch %112
+        %113 = OpLabel
+         %88 = OpAccessChain %57 %56 %16
+         %89 = OpLoad %53 %88
+         %90 = OpConvertFToS %6 %89
+         %91 = OpISub %6 %90 %35
+         %92 = OpAccessChain %7 %30 %91
+         %93 = OpLoad %6 %92
+         %95 = OpIAdd %6 %147 %93
+               OpStore %67 %95
+               OpBranch %72
+         %72 = OpLabel
+         %97 = OpIAdd %6 %146 %35
+               OpStore %68 %97
+               OpBranch %69
+         %71 = OpLabel
+         %99 = OpIEqual %24 %147 %75
+               OpSelectionMerge %101 None
+               OpBranchConditional %99 %100 %108
+        %100 = OpLabel
+               OpStore %104 %107
+               OpBranch %101
+        %108 = OpLabel
+               OpStore %104 %109
+               OpBranch %101
+        %101 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %13 = OpFunction %6 None %12
+         %14 = OpLabel
+        %138 = OpVariable %137 Function %136
+        %131 = OpVariable %7 Function
+         %46 = OpVariable %7 Function
+               OpBranch %133
+        %133 = OpLabel
+        %159 = OpPhi %24 %136 %14 %165 %135
+               OpLoopMerge %130 %135 None
+               OpBranch %134
+        %134 = OpLabel
+               OpStore %46 %16
+               OpBranch %47
+         %47 = OpLabel
+        %158 = OpPhi %24 %159 %134 %165 %50
+        %156 = OpPhi %6 %16 %134 %164 %50
+               OpLoopMerge %49 %50 None
+               OpBranch %51
+         %51 = OpLabel
+         %58 = OpAccessChain %57 %56 %16
+         %59 = OpLoad %53 %58
+         %60 = OpConvertFToS %6 %59
+         %61 = OpSLessThan %24 %156 %60
+               OpBranchConditional %61 %48 %49
+         %48 = OpLabel
+               OpStore %138 %139
+               OpStore %131 %156
+               OpBranch %49
+         %50 = OpLabel
+               OpBranch %47
+         %49 = OpLabel
+        %161 = OpPhi %6 %164 %51 %156 %48
+        %157 = OpPhi %24 %158 %51 %139 %48
+               OpSelectionMerge %140 None
+               OpBranchConditional %157 %130 %140
+        %140 = OpLabel
+         %66 = OpUndef %6
+               OpStore %138 %139
+               OpStore %131 %66
+               OpBranch %130
+        %135 = OpLabel
+               OpBranch %133
+        %130 = OpLabel
+        %160 = OpPhi %6 %161 %49 %66 %140
+               OpReturnValue %160
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt b/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt
index 0a489d4..bb99b86 100644
--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt
@@ -1,15 +1,69 @@
 {	"access-new-vector-inside-if-condition.amber",	"access-new-vector-inside-if-condition","A shader that accesses a new vector within an if condition"							},
+{	"always-discarding-function.amber",				"always-discarding-function",			"A fragment shader with an always discarding main function"								},
 {	"always-false-if-in-do-while.amber",			"always-false-if-in-do-while",			"A fragment shader with an always false if."											},
 {	"always-false-if-with-discard-return.amber",	"always-false-if-with-discard-return",	"A fragment shader with discard keyword and a return"									},
 {	"barrier-in-loop-with-break.amber",				"barrier-in-loop-with-break",			"A compute shader with a barrier in a loop with a break"								},
 {	"break-in-do-while-with-nested-if.amber",		"break-in-do-while-with-nested-if",		"A fragment shader with nested if"														},
+{	"call-function-with-discard.amber",				"call-function-with-discard",			"Calls a function containing a discard"													},
 {	"call-if-while-switch.amber",					"call-if-while-switch",					"A fragment shader with a call, if, while, switch"										},
+{	"color-set-in-for-loop.amber",					"color-set-in-for-loop",				"A fragment shader with color set in for loop"											},
 {	"color-write-in-loop.amber",					"color-write-in-loop",					"A fragment shader that writes to color in a loop"										},
 {	"complex-nested-loops-and-call.amber",			"complex-nested-loops-and-call",		"A fragment shader with complex nested loops, breaks, etc."								},
 {	"conditional-return-in-infinite-while.amber",	"conditional-return-in-infinite-while",	"A shader with conditional return inside an infinite loop"								},
 {	"continue-and-merge.amber",						"continue-and-merge",					"A fragment shader with two nested loops"												},
 {	"control-flow-in-function.amber",				"control-flow-in-function",				"A fragment shader with a lot of control flow"											},
 {	"control-flow-switch.amber",					"control-flow-switch",					"A fragment shader with somewhat complex control flow and a switch"						},
+{	"cov-apfloat-determinant.amber",				"cov-apfloat-determinant",				"A fragment shader that covers a specific arbitrary precision float usage."				},
+{	"cov-apfloat-tanh.amber",						"cov-apfloat-tanh",						"A fragment shader that covers a specific arbitrary precision float usage."				},
+{	"cov-blockfrequency-several-for-loops.amber",	"cov-blockfrequency-several-for-loops",	"A fragment shader that covers a specific block frequency info code path."				},
+{	"cov-const-folding-clamp.amber",				"cov-const-folding-clamp",				"A fragment shader that covers a specific const folding rule path."						},
+{	"cov-const-folding-clamp-max.amber",			"cov-const-folding-clamp-max",			"A fragment shader that covers a specific const folding rule path."						},
+{	"cov-const-folding-clamp-min.amber",			"cov-const-folding-clamp-min",			"A fragment shader that covers a specific const folding rule path."						},
+{	"cov-const-folding-dot-condition-true.amber",	"cov-const-folding-dot-condition-true",	"A fragment shader that covers a specific const folding rule path."						},
+{	"cov-const-folding-dot-determinant.amber",		"cov-const-folding-dot-determinant",	"A fragment shader that covers a specific const folding rule path."						},
+{	"cov-const-folding-vector-shuffle.amber",		"cov-const-folding-vector-shuffle",		"A fragment shader that covers a specific const folding rule path."						},
+{	"cov-constants-mix-uniform.amber",				"cov-constants-mix-uniform",			"A fragment shader that covers a specific constant handling path."						},
+{	"cov-copy-prop-arrays-func-argument.amber",		"cov-copy-prop-arrays-func-argument",	"A fragment shader that covers a specific propagate array copy path."					},
+{	"cov-copy-prop-arrays-no-stores.amber",			"cov-copy-prop-arrays-no-stores",		"A fragment shader that covers a specific propagate array copy path."					},
+{	"cov-copy-prop-arrays-param-uniform.amber",		"cov-copy-prop-arrays-param-uniform",	"A fragment shader that covers a specific propagate array copy path."					},
+{	"cov-dead-code-unreachable-merge.amber",		"cov-dead-code-unreachable-merge",		"A fragment shader that covers a specific dead code elimination path."					},
+{	"cov-fold-bitwise-and-zero.amber",				"cov-fold-bitwise-and-zero",			"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-bitwise-or-full-mask.amber",			"cov-fold-bitwise-or-full-mask",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-bitwise-xor.amber",					"cov-fold-bitwise-xor",					"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-div-uniform-by-zero.amber",			"cov-fold-div-uniform-by-zero",			"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-div-variable-by-zero.amber",			"cov-fold-div-variable-by-zero",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-logical-and-const-variable.amber",	"cov-fold-logical-and-const-variable",	"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-logical-and-constant.amber",			"cov-fold-logical-and-constant",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-logical-or-constant.amber",			"cov-fold-logical-or-constant",			"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-negate-variable.amber",				"cov-fold-negate-variable",				"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-shift-gte32.amber",					"cov-fold-shift-gte32",					"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-shift-right-arithmetic.amber",		"cov-fold-shift-right-arithmetic",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-fold-switch-udiv.amber",					"cov-fold-switch-udiv",					"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-construct-extract.amber",	"cov-folding-rules-construct-extract",	"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-dot-extract.amber",			"cov-folding-rules-dot-extract",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-dot-no-extract.amber",		"cov-folding-rules-dot-no-extract",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-merge-add-sub.amber",		"cov-folding-rules-merge-add-sub",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-merge-sub-add.amber",		"cov-folding-rules-merge-sub-add",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-merge-sub-sub.amber",		"cov-folding-rules-merge-sub-sub",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-redundant-mix.amber",		"cov-folding-rules-redundant-mix",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-shuffle-extract.amber",		"cov-folding-rules-shuffle-extract",	"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-shuffle-mix.amber",			"cov-folding-rules-shuffle-mix",		"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-folding-rules-split-vector-init.amber",	"cov-folding-rules-split-vector-init",	"A fragment shader that covers a specific instruction folding path."					},
+{	"cov-if-conversion-identical-branches.amber",	"cov-if-conversion-identical-branches",	"A fragment shader that covers a specific if condition conversion path."				},
+{	"cov-inline-pass-empty-block.amber",			"cov-inline-pass-empty-block",			"A fragment shader that covers a specific inlining optimization path."					},
+{	"cov-inline-pass-nested-loops.amber",			"cov-inline-pass-nested-loops",			"A fragment shader that covers a specific inlining optimization path."					},
+{	"cov-inline-pass-unreachable-func.amber",		"cov-inline-pass-unreachable-func",		"A fragment shader that covers a specific inlining optimization path."					},
+{	"cov-intervalmap-set-stop.amber",				"cov-intervalmap-set-stop",				"A fragment shader that covers a specific interval map code path."						},
+{	"cov-liveinterval-different-dest.amber",		"cov-liveinterval-different-dest",		"A fragment shader that covers a specific live interval code path."						},
+{	"cov-merge-return-condition-twice.amber",		"cov-merge-return-condition-twice",		"A fragment shader that covers a specific return merge path."							},
+{	"cov-modf-integer-to-private.amber",			"cov-modf-integer-to-private",			"A fragment shader that covers a specific private to local path."						},
+{	"cov-reduce-load-replace-extract.amber",		"cov-reduce-load-replace-extract",		"A fragment shader that covers a specific load size reduction path."					},
+{	"cov-simplification-while-inside-for.amber",	"cov-simplification-while-inside-for",	"A fragment shader that covers a specific code simplification path."					},
+{	"cov-single-block-elim-self-assign.amber",		"cov-single-block-elim-self-assign",	"A fragment shader that covers a specific single block elimination path."				},
+{	"cov-ssa-rewrite-case-with-default.amber",		"cov-ssa-rewrite-case-with-default",	"A fragment shader that covers a specific SSA rewrite path."							},
+{	"cov-types-return-in-main-never-hit.amber",		"cov-types-return-in-main-never-hit",	"A fragment shader that covers a specific types optimization path."						},
+{	"cov-vector-dce-inc-unused-comp.amber",			"cov-vector-dce-inc-unused-comp",		"A fragment shader that covers a specific vector DCE path."								},
+{	"cov-vector-dce-unused-component.amber",		"cov-vector-dce-unused-component",		"A fragment shader that covers a specific vector DCE path."								},
 {	"dead-barriers-in-loops.amber",					"dead-barriers-in-loops",				"A compute shader with dead barriers"													},
 {	"dead-struct-init.amber",						"dead-struct-init",						"A fragment shader that uses struct initializers"										},
 {	"disc-and-add-in-func-in-loop.amber",			"disc-and-add-in-func-in-loop",			"A fragment shader with discard and add in function in loop"							},
@@ -26,7 +80,10 @@
 {	"for-with-ifs-and-return.amber",				"for-with-ifs-and-return",				"A fragment shader with two ifs and return/continue inside a for loop"					},
 {	"fragcoord-control-flow.amber",					"fragcoord-control-flow",				"A fragment shader that uses FragCoord and somewhat complex control flow"				},
 {	"fragcoord-control-flow-2.amber",				"fragcoord-control-flow-2",				"A fragment shader that uses FragCoord and somewhat complex control flow"				},
+{	"function-with-uniform-return.amber",			"function-with-uniform-return",			"A fragment shader with uniform value as a return"										},
+{	"global-array-loops.amber",						"global-array-loops",					"A loop that writes then reads a global array"											},
 {	"if-and-switch.amber",							"if-and-switch",						"A fragment shader with a switch and some data flow"									},
+{	"injection-switch-as-comparison.amber",			"injection-switch-as-comparison",		"A fragment shader with uniform comparison in loop"										},
 {	"int-mat2-struct.amber",						"int-mat2-struct",						"Fragment shader using (int, mat2) struct"												},
 {	"loop-call-discard.amber",						"loop-call-discard",					"A fragment shader with nested loops and a function call"								},
 {	"loop-dead-if-loop.amber",						"loop-dead-if-loop",					"A fragment shader with a loop, dead if, and a loop"									},
@@ -41,20 +98,25 @@
 {	"mix-floor-add.amber",							"mix-floor-add",						"A fragment shader with mix, uintBitsToFloat, and floor"								},
 {	"modf-gl-color.amber",							"modf-gl-color",						"A fragment shader with modf of gl color"												},
 {	"modf-temp-modf-color.amber",					"modf-temp-modf-color",					"A fragment shader that calls modf twice, once with color"								},
+{	"nested-for-break-mat-color.amber",				"nested-for-break-mat-color",			"Two nested for loops modify a mat4 then writes red"									},
 {	"nested-for-loops-with-return.amber",			"nested-for-loops-with-return",			"A fragment shader with two nested for loops with return"								},
 {	"nested-ifs-and-return-in-for-loop.amber",		"nested-ifs-and-return-in-for-loop",	"A fragment shader with return in nest of ifs, inside loop"								},
 {	"nested-loops-switch.amber",					"nested-loops-switch",					"A fragment shader with nested loops and a switch"										},
+{	"nested-switch-break-discard.amber",			"nested-switch-break-discard",			"Nested switches with break and discard"												},
 {	"pow-vec4.amber",								"pow-vec4",								"A fragment shader that uses pow"														},
 {	"return-before-writing-wrong-color.amber",		"return-before-writing-wrong-color",	"A fragment shader with return before writing wrong color"								},
 {	"return-float-from-while-loop.amber",			"return-float-from-while-loop",			"A fragment shader with unreachable while loop"											},
 {	"return-in-loop-in-function.amber",				"return-in-loop-in-function",			"A fragment shader with early return from loop in function"								},
+{	"return-inside-loop-in-function.amber",			"return-inside-loop-in-function",		"A fragment shader with return inside loop"												},
 {	"returned-boolean-in-vector.amber",				"returned-boolean-in-vector",			"A fragment shader with returned boolean in vector"										},
 {	"similar-nested-ifs.amber",						"similar-nested-ifs",					"A fragment shader with similar nested ifs and loops"									},
 {	"smoothstep-after-loop.amber",					"smoothstep-after-loop",				"Fragment shader with 1-iteration loop and smoothstep"									},
 {	"struct-and-unreachable-infinite-loop.amber",	"struct-and-unreachable-infinite-loop",	"Fragment shader with struct and unreachable infinite loop"								},
 {	"struct-controlled-loop.amber",					"struct-controlled-loop",				"Shader with loop controlled by struct"													},
 {	"struct-used-as-temporary.amber",				"struct-used-as-temporary",				"A fragment shader that uses a temporary struct variable"								},
+{	"switch-case-with-undefined-expression.amber",	"switch-case-with-undefined-expression","A fragment shader with undefined expression"											},
 {	"switch-if-discard.amber",						"switch-if-discard",					"A fragment shader with a switch, if, and discard"										},
+{	"switch-inside-while-always-return.amber",		"switch-inside-while-always-return",	"A fragment shader with a switch inside while always return"							},
 {	"switch-with-empty-if-false.amber",				"switch-with-empty-if-false",			"A fragment shader with always false if in switch statement"							},
 {	"swizzle-struct-init-min.amber",				"swizzle-struct-init-min",				"A fragment shader that uses vector swizzles, struct initializers, and min"				},
 {	"transpose-rectangular-matrix.amber",			"transpose-rectangular-matrix",			"Fragment shader that uses 'transpose'"													},
@@ -78,6 +140,8 @@
 {	"unreachable-loops-in-switch.amber",			"unreachable-loops-in-switch",			"A fragment shader with unreachable loops in a switch"									},
 {	"unreachable-return-in-loop.amber",				"unreachable-return-in-loop",			"A fragment shader with an unreachable return in a loop"								},
 {	"unreachable-switch-case-with-discards.amber",	"unreachable-switch-case-with-discards","A shader with a switch statement containing unreachable discards"						},
+{	"uv-value-comparison-as-boolean.amber",			"uv-value-comparison-as-boolean",		"A fragment shader with uv value comparison as boolean"									},
+{	"vectors-and-discard-in-function.amber",		"vectors-and-discard-in-function",		"A fragment shader that assigns vector values"											},
 {	"while-function-always-false.amber",			"while-function-always-false",			"A fragment shader with an always false while function"									},
 {	"while-inside-switch.amber",					"while-inside-switch",					"A fragment shader that uses a while loop inside a switch"								},
 {	"write-before-break.amber",						"write-before-break",					"Fragment shader that writes red before loop break"										},
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/injection-switch-as-comparison.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/injection-switch-as-comparison.amber
new file mode 100644
index 0000000..31fb800
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/injection-switch-as-comparison.amber
@@ -0,0 +1,215 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with uniform comparison in loop
+
+# The test passes because main always writes the color red
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-inserts'
+# '--combine-access-chains'
+# '--eliminate-local-single-block'
+# '--ccp'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-local-multi-store'
+# '--simplify-instructions'
+# '--private-to-local'
+# '--combine-access-chains'
+# '--simplify-instructions'
+# '--if-conversion'
+# '--eliminate-dead-code-aggressive'
+# '--eliminate-dead-code-aggressive'
+# '--ccp'
+# '--copy-propagate-arrays'
+# '--ccp'
+# '--private-to-local'
+# '--eliminate-dead-code-aggressive'
+# spirv-opt commit hash: 6b072126595dd8c2448eb1fda616251c5e6d7079
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+#
+# float makeFrame()
+# {
+#     for (int i = 0; i < 1; i++)
+#     {
+#         for (int _injected_loop_counter = 0; 1 < int(injectionSwitch.y); 1)
+#         {
+#             return 1.0;
+#         }
+#     }
+#     return 1.0;
+# }
+#
+# void main()
+# {
+#     makeFrame();
+#     _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); // Writes the color red
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 85
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %49
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "makeFrame("
+               OpName %30 "buf0"
+               OpMemberName %30 0 "injectionSwitch"
+               OpName %32 ""
+               OpName %49 "_GLF_color"
+               OpMemberDecorate %30 0 Offset 0
+               OpDecorate %30 Block
+               OpDecorate %32 DescriptorSet 0
+               OpDecorate %32 Binding 0
+               OpDecorate %43 RelaxedPrecision
+               OpDecorate %49 Location 0
+               OpDecorate %67 RelaxedPrecision
+               OpDecorate %73 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypeInt 32 1
+         %13 = OpConstant %10 0
+         %20 = OpConstant %10 1
+         %21 = OpTypeBool
+         %29 = OpTypeVector %6 2
+         %30 = OpTypeStruct %29
+         %31 = OpTypePointer Uniform %30
+         %32 = OpVariable %31 Uniform
+         %33 = OpTypeInt 32 0
+         %34 = OpConstant %33 1
+         %35 = OpTypePointer Uniform %6
+         %40 = OpConstant %6 1
+         %47 = OpTypeVector %6 4
+         %48 = OpTypePointer Output %47
+         %49 = OpVariable %48 Output
+         %50 = OpConstant %6 0
+         %51 = OpConstantComposite %47 %40 %50 %50 %40
+         %59 = OpConstantFalse %21
+         %62 = OpConstantTrue %21
+         %79 = OpUndef %6
+         %82 = OpUndef %21
+         %83 = OpUndef %10
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %46 = OpFunctionCall %6 %8
+               OpStore %49 %51
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+               OpBranch %56
+         %56 = OpLabel
+               OpLoopMerge %52 %58 None
+               OpBranch %57
+         %57 = OpLabel
+               OpBranch %14
+         %14 = OpLabel
+         %70 = OpPhi %21 %59 %57 %68 %63
+         %67 = OpPhi %10 %13 %57 %43 %63
+         %77 = OpPhi %6 %79 %57 %80 %63
+         %22 = OpSLessThan %21 %67 %20
+               OpLoopMerge %16 %63 None
+               OpBranchConditional %22 %15 %16
+         %15 = OpLabel
+               OpBranch %24
+         %24 = OpLabel
+         %81 = OpPhi %6 %77 %15 %79 %27
+         %73 = OpPhi %10 %67 %15 %83 %27
+         %69 = OpPhi %21 %70 %15 %82 %27
+         %36 = OpAccessChain %35 %32 %13 %34
+         %37 = OpLoad %6 %36
+         %38 = OpConvertFToS %10 %37
+         %39 = OpSLessThan %21 %20 %38
+               OpLoopMerge %26 %27 None
+               OpBranchConditional %39 %25 %26
+         %25 = OpLabel
+               OpBranch %26
+         %27 = OpLabel
+               OpBranch %24
+         %26 = OpLabel
+         %80 = OpPhi %6 %81 %24 %40 %25
+         %68 = OpPhi %21 %69 %24 %62 %25
+               OpSelectionMerge %84 None
+               OpBranchConditional %68 %16 %84
+         %84 = OpLabel
+               OpBranch %63
+         %63 = OpLabel
+         %43 = OpIAdd %10 %73 %20
+               OpBranch %14
+         %16 = OpLabel
+         %76 = OpPhi %6 %77 %14 %80 %26
+         %74 = OpPhi %21 %70 %14 %68 %26
+               OpSelectionMerge %65 None
+               OpBranchConditional %74 %52 %65
+         %65 = OpLabel
+               OpBranch %52
+         %58 = OpLabel
+               OpBranch %56
+         %52 = OpLabel
+         %75 = OpPhi %6 %76 %16 %40 %65
+               OpReturnValue %75
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-break-mat-color.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-break-mat-color.amber
new file mode 100644
index 0000000..0d8d823
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-break-mat-color.amber
@@ -0,0 +1,232 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: Two nested for loops modify a mat4 then writes red
+
+# The test passes because the shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-O'
+# spirv-opt commit hash: 18b3b94567a9251a6f8491a6d07c4422abadd22c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# mat4 m44;
+#
+# void main()
+# {
+#     m44 = mat4(
+#          1.0,  2.0,  3.0,  4.0,
+#          5.0,  6.0,  7.0,  8.0,
+#          9.0, 10.0, 11.0, 12.0,
+#         13.0, 14.0, 15.0, 16.0
+#     );
+#
+#     for (
+#         int c = 0;
+#         c < 4;
+#         c++)
+#     {
+#         // Always false.
+#         if (gl_FragCoord.y < 0.0)
+#         {
+#             break;
+#         }
+#
+#         for (
+#             int r = 0;
+#             r < 4;
+#             r++)
+#         {
+#             m44[c][r] += one;
+#         }
+#     }
+#
+#     // Red:
+#     // vec4(1.0, 0.0, 0.0, 1.0)
+#     vec4 c = vec4(0.0);
+#     c.x += m44[1][1] -  6.0;  // += 1.0
+#     c.w += m44[2][2] - 11.0;  // += 1.0
+#     _GLF_color = c;
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 117
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %46 %106
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "m44"
+               OpName %46 "gl_FragCoord"
+               OpName %67 "buf0"
+               OpMemberName %67 0 "one"
+               OpName %69 ""
+               OpName %106 "_GLF_color"
+               OpDecorate %46 BuiltIn FragCoord
+               OpMemberDecorate %67 0 Offset 0
+               OpDecorate %67 Block
+               OpDecorate %69 DescriptorSet 0
+               OpDecorate %69 Binding 0
+               OpDecorate %80 RelaxedPrecision
+               OpDecorate %82 RelaxedPrecision
+               OpDecorate %106 Location 0
+               OpDecorate %115 RelaxedPrecision
+               OpDecorate %116 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypeMatrix %7 4
+         %11 = OpConstant %6 1
+         %12 = OpConstant %6 2
+         %13 = OpConstant %6 3
+         %14 = OpConstant %6 4
+         %15 = OpConstantComposite %7 %11 %12 %13 %14
+         %16 = OpConstant %6 5
+         %17 = OpConstant %6 6
+         %18 = OpConstant %6 7
+         %19 = OpConstant %6 8
+         %20 = OpConstantComposite %7 %16 %17 %18 %19
+         %21 = OpConstant %6 9
+         %22 = OpConstant %6 10
+         %23 = OpConstant %6 11
+         %24 = OpConstant %6 12
+         %25 = OpConstantComposite %7 %21 %22 %23 %24
+         %26 = OpConstant %6 13
+         %27 = OpConstant %6 14
+         %28 = OpConstant %6 15
+         %29 = OpConstant %6 16
+         %30 = OpConstantComposite %7 %26 %27 %28 %29
+         %31 = OpConstantComposite %8 %15 %20 %25 %30
+         %32 = OpTypeInt 32 1
+         %35 = OpConstant %32 0
+         %42 = OpConstant %32 4
+         %43 = OpTypeBool
+         %45 = OpTypePointer Input %7
+         %46 = OpVariable %45 Input
+         %47 = OpTypeInt 32 0
+         %48 = OpConstant %47 1
+         %49 = OpTypePointer Input %6
+         %52 = OpConstant %6 0
+         %67 = OpTypeStruct %6
+         %68 = OpTypePointer Uniform %67
+         %69 = OpVariable %68 Uniform
+         %70 = OpTypePointer Uniform %6
+         %79 = OpConstant %32 1
+         %85 = OpConstantComposite %7 %52 %52 %52 %52
+         %90 = OpTypePointer Function %6
+         %95 = OpConstant %32 2
+         %96 = OpConstant %47 2
+        %105 = OpTypePointer Output %7
+        %106 = OpVariable %105 Output
+        %108 = OpTypePointer Function %8
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %10 = OpVariable %108 Function
+               OpStore %10 %31
+               OpBranch %36
+         %36 = OpLabel
+        %115 = OpPhi %32 %35 %5 %82 %39
+         %44 = OpSLessThan %43 %115 %42
+               OpLoopMerge %38 %39 None
+               OpBranchConditional %44 %37 %38
+         %37 = OpLabel
+         %50 = OpAccessChain %49 %46 %48
+         %51 = OpLoad %6 %50
+         %53 = OpFOrdLessThan %43 %51 %52
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %55
+         %54 = OpLabel
+               OpBranch %38
+         %55 = OpLabel
+               OpBranch %58
+         %58 = OpLabel
+        %116 = OpPhi %32 %35 %55 %80 %59
+         %64 = OpSLessThan %43 %116 %42
+               OpLoopMerge %60 %59 None
+               OpBranchConditional %64 %59 %60
+         %59 = OpLabel
+         %71 = OpAccessChain %70 %69 %35
+         %72 = OpLoad %6 %71
+         %74 = OpAccessChain %90 %10 %115 %116
+         %75 = OpLoad %6 %74
+         %76 = OpFAdd %6 %75 %72
+               OpStore %74 %76
+         %80 = OpIAdd %32 %116 %79
+               OpBranch %58
+         %60 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %82 = OpIAdd %32 %115 %79
+               OpBranch %36
+         %38 = OpLabel
+         %86 = OpAccessChain %90 %10 %79 %48
+         %87 = OpLoad %6 %86
+         %88 = OpFSub %6 %87 %17
+        %111 = OpCompositeInsert %7 %88 %85 0
+         %97 = OpAccessChain %90 %10 %95 %96
+         %98 = OpLoad %6 %97
+         %99 = OpFSub %6 %98 %23
+        %114 = OpCompositeInsert %7 %99 %111 3
+               OpStore %106 %114
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-switch-break-discard.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-switch-break-discard.amber
new file mode 100644
index 0000000..3265dfb
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-switch-break-discard.amber
@@ -0,0 +1,159 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: Nested switches with break and discard
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#   _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
+#
+#   switch (int(injectionSwitch.x)) // 0
+#   {
+#   case 0:
+#     switch (1)
+#     {
+#     case 1:
+#       if (gl_FragCoord.y >= 0.0) // Always true.
+#       {
+#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); // Red.
+#         break;
+#       }
+#       discard;
+#     }
+#   case 42:
+#     break;
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %9 %32
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "_GLF_color"
+               OpName %14 "buf0"
+               OpMemberName %14 0 "injectionSwitch"
+               OpName %16 ""
+               OpName %32 "gl_FragCoord"
+               OpDecorate %9 Location 0
+               OpMemberDecorate %14 0 Offset 0
+               OpDecorate %14 Block
+               OpDecorate %16 DescriptorSet 0
+               OpDecorate %16 Binding 0
+               OpDecorate %32 BuiltIn FragCoord
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Output %7
+          %9 = OpVariable %8 Output
+         %10 = OpConstant %6 0
+         %11 = OpConstant %6 1
+         %12 = OpConstantComposite %7 %10 %10 %10 %11
+         %13 = OpTypeVector %6 2
+         %14 = OpTypeStruct %13
+         %15 = OpTypePointer Uniform %14
+         %16 = OpVariable %15 Uniform
+         %17 = OpTypeInt 32 1
+         %18 = OpConstant %17 0
+         %19 = OpTypeInt 32 0
+         %20 = OpConstant %19 0
+         %21 = OpTypePointer Uniform %6
+         %28 = OpConstant %17 1
+         %31 = OpTypePointer Input %7
+         %32 = OpVariable %31 Input
+         %33 = OpConstant %19 1
+         %34 = OpTypePointer Input %6
+         %37 = OpTypeBool
+         %41 = OpConstantComposite %7 %11 %10 %10 %11
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpStore %9 %12
+         %22 = OpAccessChain %21 %16 %18 %20
+         %23 = OpLoad %6 %22
+         %24 = OpConvertFToS %17 %23
+               OpSelectionMerge %27 None
+               OpSwitch %24 %27 0 %25 42 %26
+         %25 = OpLabel
+               OpSelectionMerge %30 None
+               OpSwitch %28 %30 1 %29
+         %29 = OpLabel
+         %35 = OpAccessChain %34 %32 %33
+         %36 = OpLoad %6 %35
+         %38 = OpFOrdGreaterThanEqual %37 %36 %10
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %39 %40
+         %39 = OpLabel
+               OpStore %9 %41
+               OpBranch %30
+         %40 = OpLabel
+               OpKill
+         %30 = OpLabel
+               OpBranch %26
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-inside-loop-in-function.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-inside-loop-in-function.amber
new file mode 100644
index 0000000..b10ad7a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-inside-loop-in-function.amber
@@ -0,0 +1,223 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with return inside loop
+
+# The test passes because main always writes the color red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-inserts'
+# '--private-to-local'
+# '--eliminate-dead-inserts'
+# '--ccp'
+# '--vector-dce'
+# '--vector-dce'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-dead-inserts'
+# '--redundancy-elimination'
+# '--eliminate-dead-branches'
+# '--eliminate-dead-branches'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-inserts'
+# '--private-to-local'
+# '--eliminate-dead-inserts'
+# '--convert-local-access-chains'
+# '--eliminate-local-multi-store'
+# '--simplify-instructions'
+# '--convert-local-access-chains'
+# spirv-opt commit hash: 6b072126595dd8c2448eb1fda616251c5e6d7079
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# vec3 GLF_live4drawShape()
+# {
+#     for (int i = 0; i < 0; i++)
+#     {
+#         return vec3(1.0);
+#     }
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); // Writes the color red
+#     GLF_live4drawShape();
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 90
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %32
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "GLF_live4drawShape("
+               OpName %13 "i"
+               OpName %32 "_GLF_color"
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %32 Location 0
+               OpDecorate %51 RelaxedPrecision
+               OpDecorate %68 RelaxedPrecision
+               OpDecorate %79 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 3
+          %8 = OpTypeFunction %7
+         %11 = OpTypeInt 32 1
+         %12 = OpTypePointer Function %11
+         %14 = OpConstant %11 0
+         %21 = OpTypeBool
+         %23 = OpConstant %6 1
+         %24 = OpConstantComposite %7 %23 %23 %23
+         %27 = OpConstant %11 1
+         %30 = OpTypeVector %6 4
+         %31 = OpTypePointer Output %30
+         %32 = OpVariable %31 Output
+         %33 = OpConstant %6 0
+         %34 = OpConstantComposite %30 %23 %33 %33 %23
+         %37 = OpTypePointer Function %7
+         %43 = OpConstantFalse %21
+         %44 = OpTypePointer Function %21
+         %46 = OpConstantTrue %21
+         %76 = OpUndef %7
+         %77 = OpUndef %11
+         %78 = OpUndef %21
+         %87 = OpUndef %7
+         %88 = OpUndef %11
+         %89 = OpUndef %21
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %49 = OpVariable %44 Function %43
+         %50 = OpVariable %37 Function
+         %51 = OpVariable %12 Function
+         %52 = OpVariable %37 Function
+               OpStore %32 %34
+               OpStore %49 %43
+               OpBranch %53
+         %53 = OpLabel
+         %71 = OpPhi %21 %43 %5 %78 %55
+               OpLoopMerge %54 %55 None
+               OpBranch %56
+         %56 = OpLabel
+               OpStore %51 %14
+               OpBranch %57
+         %57 = OpLabel
+         %70 = OpPhi %21 %71 %56 %78 %59
+         %68 = OpPhi %11 %14 %56 %77 %59
+               OpLoopMerge %58 %59 None
+               OpBranch %60
+         %60 = OpLabel
+         %62 = OpSLessThan %21 %68 %14
+               OpBranchConditional %62 %63 %58
+         %63 = OpLabel
+               OpStore %49 %46
+               OpStore %50 %24
+               OpBranch %58
+         %59 = OpLabel
+               OpBranch %57
+         %58 = OpLabel
+         %73 = OpPhi %7 %76 %60 %24 %63
+         %69 = OpPhi %21 %70 %60 %46 %63
+               OpSelectionMerge %65 None
+               OpBranchConditional %69 %54 %65
+         %65 = OpLabel
+         %66 = OpUndef %7
+               OpStore %49 %46
+               OpBranch %54
+         %55 = OpLabel
+               OpBranch %53
+         %54 = OpLabel
+         %72 = OpPhi %7 %73 %58 %66 %65
+               OpStore %52 %72
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %45 = OpVariable %44 Function %43
+         %38 = OpVariable %37 Function
+         %13 = OpVariable %12 Function
+               OpBranch %40
+         %40 = OpLabel
+         %82 = OpPhi %21 %43 %10 %89 %42
+               OpLoopMerge %36 %42 None
+               OpBranch %41
+         %41 = OpLabel
+               OpStore %13 %14
+               OpBranch %15
+         %15 = OpLabel
+         %81 = OpPhi %21 %82 %41 %89 %18
+         %79 = OpPhi %11 %14 %41 %88 %18
+               OpLoopMerge %17 %18 None
+               OpBranch %19
+         %19 = OpLabel
+         %22 = OpSLessThan %21 %79 %14
+               OpBranchConditional %22 %16 %17
+         %16 = OpLabel
+               OpStore %45 %46
+               OpStore %38 %24
+               OpBranch %17
+         %18 = OpLabel
+               OpBranch %15
+         %17 = OpLabel
+         %84 = OpPhi %7 %87 %19 %24 %16
+         %80 = OpPhi %21 %81 %19 %46 %16
+               OpSelectionMerge %47 None
+               OpBranchConditional %80 %36 %47
+         %47 = OpLabel
+         %29 = OpUndef %7
+               OpStore %45 %46
+               OpBranch %36
+         %42 = OpLabel
+               OpBranch %40
+         %36 = OpLabel
+         %83 = OpPhi %7 %84 %17 %29 %47
+               OpReturnValue %83
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-case-with-undefined-expression.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-case-with-undefined-expression.amber
new file mode 100644
index 0000000..60d4098
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-case-with-undefined-expression.amber
@@ -0,0 +1,248 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with undefined expression
+
+# The test passes because main always writes the color red
+
+# Optimized using spirv-opt with the following arguments:
+# '--redundancy-elimination'
+# '--eliminate-local-multi-store'
+# '--private-to-local'
+# '--ccp'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--scalar-replacement=100'
+# '--redundancy-elimination'
+# '--redundancy-elimination'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--vector-dce'
+# '--simplify-instructions'
+# '--private-to-local'
+# '--inline-entry-points-exhaustive'
+# '--vector-dce'
+# '--ccp'
+# '--eliminate-local-single-store'
+# '--copy-propagate-arrays'
+# '--eliminate-local-multi-store'
+# spirv-opt commit hash: 6b072126595dd8c2448eb1fda616251c5e6d7079
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# int search(int target)
+# {
+#   if (1 == target)
+#   {
+#     return 1;
+#   }
+#   return 1;
+# }
+#
+# void main()
+# {
+#   _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); // Writes the color red
+#
+#   for (int i = 0; i < 1; i++)
+#   {
+#     int result;
+#     search(1);
+#     switch (result)
+#     {
+#     case 0:
+#       return;
+#     }
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 86
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %24
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "search(i1;"
+               OpName %9 "target"
+               OpName %24 "_GLF_color"
+               OpName %28 "i"
+               OpName %37 "param"
+               OpName %39 "result"
+               OpDecorate %10 RelaxedPrecision
+               OpDecorate %9 RelaxedPrecision
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %24 Location 0
+               OpDecorate %28 RelaxedPrecision
+               OpDecorate %39 RelaxedPrecision
+               OpDecorate %46 RelaxedPrecision
+               OpDecorate %47 RelaxedPrecision
+               OpDecorate %61 RelaxedPrecision
+               OpDecorate %68 RelaxedPrecision
+               OpDecorate %69 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7
+         %12 = OpConstant %6 1
+         %14 = OpTypeBool
+         %21 = OpTypeFloat 32
+         %22 = OpTypeVector %21 4
+         %23 = OpTypePointer Output %22
+         %24 = OpVariable %23 Output
+         %25 = OpConstant %21 1
+         %26 = OpConstant %21 0
+         %27 = OpConstantComposite %22 %25 %26 %26 %25
+         %29 = OpConstant %6 0
+         %49 = OpUndef %6
+         %50 = OpConstantTrue %14
+         %55 = OpConstantFalse %14
+         %56 = OpTypePointer Function %14
+         %83 = OpUndef %14
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %67 = OpVariable %56 Function %55
+         %68 = OpVariable %7 Function
+         %69 = OpVariable %7 Function
+         %57 = OpVariable %56 Function %55
+         %28 = OpVariable %7 Function
+         %37 = OpVariable %7 Function
+         %39 = OpVariable %7 Function
+               OpBranch %52
+         %52 = OpLabel
+         %82 = OpPhi %14 %55 %5 %83 %54
+               OpLoopMerge %51 %54 None
+               OpBranch %53
+         %53 = OpLabel
+               OpStore %24 %27
+               OpStore %28 %29
+               OpBranch %30
+         %30 = OpLabel
+         %81 = OpPhi %14 %82 %53 %85 %33
+         %47 = OpPhi %6 %29 %53 %46 %33
+               OpLoopMerge %32 %33 None
+               OpBranch %34
+         %34 = OpLabel
+         %36 = OpSLessThan %14 %47 %12
+               OpBranchConditional %36 %31 %32
+         %31 = OpLabel
+               OpStore %37 %12
+               OpStore %67 %55
+               OpBranch %70
+         %70 = OpLabel
+         %85 = OpPhi %14 %81 %31 %83 %72
+               OpLoopMerge %71 %72 None
+               OpBranch %73
+         %73 = OpLabel
+         %75 = OpIEqual %14 %12 %12
+               OpSelectionMerge %76 None
+               OpBranchConditional %75 %77 %76
+         %77 = OpLabel
+               OpStore %67 %50
+               OpStore %68 %12
+               OpBranch %71
+         %76 = OpLabel
+               OpStore %67 %50
+               OpStore %68 %12
+               OpBranch %71
+         %72 = OpLabel
+               OpBranch %70
+         %71 = OpLabel
+               OpStore %69 %12
+               OpSelectionMerge %42 None
+               OpSwitch %49 %42 0 %41
+         %41 = OpLabel
+               OpStore %57 %50
+               OpBranch %32
+         %42 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+         %46 = OpIAdd %6 %47 %12
+               OpStore %28 %46
+               OpBranch %30
+         %32 = OpLabel
+         %80 = OpPhi %14 %81 %34 %50 %41
+               OpSelectionMerge %58 None
+               OpBranchConditional %80 %51 %58
+         %58 = OpLabel
+               OpStore %57 %50
+               OpBranch %51
+         %54 = OpLabel
+               OpBranch %52
+         %51 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %66 = OpVariable %56 Function %55
+         %61 = OpVariable %7 Function
+               OpBranch %63
+         %63 = OpLabel
+               OpLoopMerge %60 %65 None
+               OpBranch %64
+         %64 = OpLabel
+         %13 = OpLoad %6 %9
+         %15 = OpIEqual %14 %12 %13
+               OpSelectionMerge %17 None
+               OpBranchConditional %15 %16 %17
+         %16 = OpLabel
+               OpStore %66 %50
+               OpStore %61 %12
+               OpBranch %60
+         %17 = OpLabel
+               OpStore %66 %50
+               OpStore %61 %12
+               OpBranch %60
+         %65 = OpLabel
+               OpBranch %63
+         %60 = OpLabel
+               OpReturnValue %12
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-inside-while-always-return.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-inside-while-always-return.amber
new file mode 100644
index 0000000..6e5427d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-inside-while-always-return.amber
@@ -0,0 +1,172 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with a switch inside while always return
+
+# The test passes because main always writes the color red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   float zero;
+# };
+#
+# int merge()
+# {
+#   if (zero < 0.0)
+#   {
+#     return 0;
+#   }
+# }
+#
+# void main()
+# {
+#   _GLF_color = vec4(1, 0, 0, 1);
+#   do
+#   {
+#     switch (int(zero))
+#     {
+#     case 0:
+#       return; // We always end up here
+#     }
+#   } while (false);
+#
+#   int res = merge();
+#   _GLF_color = vec4(int(res));
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 48
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %27
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "merge("
+               OpName %11 "buf0"
+               OpMemberName %11 0 "zero"
+               OpName %13 ""
+               OpName %27 "_GLF_color"
+               OpName %43 "res"
+               OpDecorate %8 RelaxedPrecision
+               OpMemberDecorate %11 0 Offset 0
+               OpDecorate %11 Block
+               OpDecorate %13 DescriptorSet 0
+               OpDecorate %13 Binding 0
+               OpDecorate %27 Location 0
+               OpDecorate %43 RelaxedPrecision
+               OpDecorate %44 RelaxedPrecision
+               OpDecorate %45 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeFunction %6
+         %10 = OpTypeFloat 32
+         %11 = OpTypeStruct %10
+         %12 = OpTypePointer Uniform %11
+         %13 = OpVariable %12 Uniform
+         %14 = OpConstant %6 0
+         %15 = OpTypePointer Uniform %10
+         %18 = OpConstant %10 0
+         %19 = OpTypeBool
+         %25 = OpTypeVector %10 4
+         %26 = OpTypePointer Output %25
+         %27 = OpVariable %26 Output
+         %28 = OpConstant %10 1
+         %29 = OpConstantComposite %25 %28 %18 %18 %28
+         %41 = OpConstantFalse %19
+         %42 = OpTypePointer Function %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %43 = OpVariable %42 Function
+               OpStore %27 %29
+               OpBranch %30
+         %30 = OpLabel
+               OpLoopMerge %32 %33 None
+               OpBranch %31
+         %31 = OpLabel
+         %34 = OpAccessChain %15 %13 %14
+         %35 = OpLoad %10 %34
+         %36 = OpConvertFToS %6 %35
+               OpSelectionMerge %38 None
+               OpSwitch %36 %38 0 %37
+         %37 = OpLabel
+               OpReturn
+         %38 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+               OpBranchConditional %41 %30 %32
+         %32 = OpLabel
+         %44 = OpFunctionCall %6 %8
+               OpStore %43 %44
+         %45 = OpLoad %6 %43
+         %46 = OpConvertSToF %10 %45
+         %47 = OpCompositeConstruct %25 %46 %46 %46 %46
+               OpStore %27 %47
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %16 = OpAccessChain %15 %13 %14
+         %17 = OpLoad %10 %16
+         %20 = OpFOrdLessThan %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %22
+         %21 = OpLabel
+               OpReturnValue %14
+         %22 = OpLabel
+         %24 = OpUndef %6
+               OpReturnValue %24
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE float DATA
+ 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/uv-value-comparison-as-boolean.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/uv-value-comparison-as-boolean.amber
new file mode 100644
index 0000000..f366ddc
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/uv-value-comparison-as-boolean.amber
@@ -0,0 +1,167 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with uv value comparison as boolean
+
+# The test passes because the shader always writes the color red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--scalar-replacement=100'
+# '--vector-dce'
+# '--redundancy-elimination'
+# '--ccp'
+# '--redundancy-elimination'
+# '--copy-propagate-arrays'
+# '--eliminate-dead-code-aggressive'
+# '--redundancy-elimination'
+# '--vector-dce'
+# '--inline-entry-points-exhaustive'
+# '--private-to-local'
+# '--if-conversion'
+# '--if-conversion'
+# '--eliminate-dead-code-aggressive'
+# '--if-conversion'
+# '--simplify-instructions'
+# '--eliminate-local-multi-store'
+# spirv-opt commit hash: ad7f2c5c4c7f51360e9e079109a9217aa5ba5cc0
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#   vec2 uv;
+#   bool c1 = uv.y < 0.25;
+#
+#   for (int i = 0; i < 1; i++)
+#   {
+#     _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); // Writes the color red
+#     return;
+#   }
+#   if (c1)
+#   {
+#     return;
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 49
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %34
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "c1"
+               OpName %12 "uv"
+               OpName %22 "i"
+               OpName %34 "_GLF_color"
+               OpDecorate %22 RelaxedPrecision
+               OpDecorate %34 Location 0
+               OpDecorate %39 RelaxedPrecision
+               OpDecorate %40 RelaxedPrecision
+               OpDecorate %45 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeFloat 32
+         %10 = OpTypeVector %9 2
+         %11 = OpTypePointer Function %10
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 1
+         %15 = OpTypePointer Function %9
+         %18 = OpConstant %9 0.25
+         %20 = OpTypeInt 32 1
+         %21 = OpTypePointer Function %20
+         %23 = OpConstant %20 0
+         %30 = OpConstant %20 1
+         %32 = OpTypeVector %9 4
+         %33 = OpTypePointer Output %32
+         %34 = OpVariable %33 Output
+         %35 = OpConstant %9 1
+         %36 = OpConstant %9 0
+         %37 = OpConstantComposite %32 %35 %36 %36 %35
+         %47 = OpUndef %20
+         %48 = OpUndef %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %12 = OpVariable %11 Function
+         %22 = OpVariable %21 Function
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %9 %16
+         %19 = OpFOrdLessThan %6 %17 %18
+               OpStore %8 %19
+               OpStore %22 %23
+               OpBranch %24
+         %24 = OpLabel
+         %46 = OpPhi %6 %19 %5 %48 %27
+         %45 = OpPhi %20 %23 %5 %47 %27
+               OpLoopMerge %26 %27 None
+               OpBranch %28
+         %28 = OpLabel
+         %31 = OpSLessThan %6 %45 %30
+               OpBranchConditional %31 %25 %26
+         %25 = OpLabel
+               OpStore %34 %37
+               OpReturn
+         %27 = OpLabel
+         %39 = OpLoad %20 %22
+         %40 = OpIAdd %20 %39 %30
+               OpStore %22 %40
+               OpBranch %24
+         %26 = OpLabel
+               OpSelectionMerge %43 None
+               OpBranchConditional %46 %42 %43
+         %42 = OpLabel
+               OpReturn
+         %43 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/vectors-and-discard-in-function.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/vectors-and-discard-in-function.amber
new file mode 100644
index 0000000..6d1756a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/vectors-and-discard-in-function.amber
@@ -0,0 +1,177 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# 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.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that assigns vector values
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-branches'
+# '--eliminate-dead-inserts'
+# '--combine-access-chains'
+# '--eliminate-local-multi-store'
+# '--simplify-instructions'
+# '--eliminate-dead-branches'
+# '--vector-dce'
+# '--combine-access-chains'
+# '--eliminate-local-single-store'
+# '--eliminate-local-multi-store'
+# '--eliminate-dead-inserts'
+# '--if-conversion'
+# '--copy-propagate-arrays'
+# '--combine-access-chains'
+# spirv-opt commit hash: e82a428605f6ce0a07337b36f8ba3935c9f165ac
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# int func()
+# {
+#     vec4 tmp;
+#     float tmp2[1];
+#     float tmp3;
+#     vec2 coord = vec2(1.0);
+#
+#     if (int(coord.y) < 180) // Always true
+#         tmp3 = tmp2[0];
+#     else
+#         discard;
+#
+#     tmp = vec4(tmp3);
+#     return 1;
+# }
+#
+# void main()
+# {
+#     if (func() == 1)
+#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#     else
+#         _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %49
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %13 "coord"
+               OpName %27 "tmp3"
+               OpName %30 "tmp2"
+               OpName %38 "tmp"
+               OpName %49 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpDecorate %44 RelaxedPrecision
+               OpDecorate %49 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeFunction %6
+         %10 = OpTypeFloat 32
+         %11 = OpTypeVector %10 2
+         %12 = OpTypePointer Function %11
+         %14 = OpConstant %10 1
+         %15 = OpConstantComposite %11 %14 %14
+         %16 = OpTypeInt 32 0
+         %17 = OpConstant %16 1
+         %18 = OpTypePointer Function %10
+         %22 = OpConstant %6 180
+         %23 = OpTypeBool
+         %28 = OpTypeArray %10 %17
+         %29 = OpTypePointer Function %28
+         %31 = OpConstant %6 0
+         %36 = OpTypeVector %10 4
+         %37 = OpTypePointer Function %36
+         %41 = OpConstant %6 1
+         %48 = OpTypePointer Output %36
+         %49 = OpVariable %48 Output
+         %50 = OpConstant %10 0
+         %51 = OpConstantComposite %36 %14 %50 %50 %14
+         %53 = OpConstantComposite %36 %50 %50 %50 %14
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %44 = OpFunctionCall %6 %8
+         %45 = OpIEqual %23 %44 %41
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %46 %52
+         %46 = OpLabel
+               OpStore %49 %51
+               OpBranch %47
+         %52 = OpLabel
+               OpStore %49 %53
+               OpBranch %47
+         %47 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %13 = OpVariable %12 Function
+         %27 = OpVariable %18 Function
+         %30 = OpVariable %29 Function
+         %38 = OpVariable %37 Function
+               OpStore %13 %15
+         %19 = OpAccessChain %18 %13 %17
+         %20 = OpLoad %10 %19
+         %21 = OpConvertFToS %6 %20
+         %24 = OpSLessThan %23 %21 %22
+               OpSelectionMerge %26 None
+               OpBranchConditional %24 %25 %34
+         %25 = OpLabel
+         %32 = OpAccessChain %18 %30 %31
+         %33 = OpLoad %10 %32
+               OpStore %27 %33
+               OpBranch %26
+         %34 = OpLabel
+               OpKill
+         %26 = OpLabel
+         %40 = OpCompositeConstruct %36 %33 %33 %33 %33
+               OpStore %38 %40
+               OpReturnValue %41
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/undef/undefined_constant_composite.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/undef/undefined_constant_composite.amber
new file mode 100644
index 0000000..b2e76b1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/undef/undefined_constant_composite.amber
@@ -0,0 +1,135 @@
+#!amber
+
+# Copyright 2020 Valve Corporation.
+# Copyright 2020 The Khronos Group Inc.
+#
+# 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.
+
+
+SHADER compute comp SPIRV-ASM
+;
+; The shader below is based on the following GLSL shader:
+;
+;     #version 450
+;
+;     struct Pair {
+;         int first;
+;         int second;
+;     };
+;
+;     const Pair constant_pair = { 100, 200 };
+;
+;     layout(set=0, binding=0, std430) buffer InputBlock {
+;         int array[10];
+;     } inputValues;
+;
+;     layout(set=0, binding=1, std430) buffer OutputBlock {
+;         int array[10];
+;     } outputValues;
+;
+;     int add_second (int value, Pair pair) {
+;         return value + pair.second;
+;     }
+;
+;     void main() {
+;         uint idx = gl_GlobalInvocationID.x;
+;         outputValues.array[idx] = add_second(inputValues.array[idx], constant_pair);
+;     }
+;
+; However, the first element of constant_pair has been modified to be undefined.
+;
+                            OpCapability Shader
+                  %std450 = OpExtInstImport "GLSL.std.450"
+                            OpMemoryModel Logical GLSL450
+                            OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
+                            OpExecutionMode %main LocalSize 1 1 1
+                            OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
+                            OpDecorate %_arr_int_uint_10 ArrayStride 4
+                            OpMemberDecorate %OutputBlock 0 Offset 0
+                            OpDecorate %OutputBlock BufferBlock
+                            OpDecorate %outputValues DescriptorSet 0
+                            OpDecorate %outputValues Binding 1
+                            OpMemberDecorate %InputBlock 0 Offset 0
+                            OpDecorate %InputBlock BufferBlock
+                            OpDecorate %inputValues DescriptorSet 0
+                            OpDecorate %inputValues Binding 0
+                    %void = OpTypeVoid
+               %void_func = OpTypeFunction %void
+                     %int = OpTypeInt 32 1
+                    %uint = OpTypeInt 32 0
+                  %v3uint = OpTypeVector %uint 3
+                   %int_0 = OpConstant %int 0
+                   %int_1 = OpConstant %int 1
+                 %int_200 = OpConstant %int 200
+                  %uint_0 = OpConstant %uint 0
+                 %uint_10 = OpConstant %uint 10
+       %_ptr_Function_int = OpTypePointer Function %int
+                    %Pair = OpTypeStruct %int %int
+      %_ptr_Function_Pair = OpTypePointer Function %Pair
+    %add_second_func_type = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_Pair
+      %_ptr_Function_uint = OpTypePointer Function %uint
+       %_ptr_Input_v3uint = OpTypePointer Input %v3uint
+         %_ptr_Input_uint = OpTypePointer Input %uint
+        %_arr_int_uint_10 = OpTypeArray %int %uint_10
+             %OutputBlock = OpTypeStruct %_arr_int_uint_10
+%_ptr_Uniform_OutputBlock = OpTypePointer Uniform %OutputBlock
+            %outputValues = OpVariable %_ptr_Uniform_OutputBlock Uniform
+              %InputBlock = OpTypeStruct %_arr_int_uint_10
+ %_ptr_Uniform_InputBlock = OpTypePointer Uniform %InputBlock
+             %inputValues = OpVariable %_ptr_Uniform_InputBlock Uniform
+                            ; Replaced %int_100 with an undefined int.
+               %undef_int = OpUndef %int
+                            ; Composed a constant Pair with the undefined int in the first member.
+              %const_Pair = OpConstantComposite %Pair %undef_int %int_200
+        %_ptr_Uniform_int = OpTypePointer Uniform %int
+   %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
+                    %main = OpFunction %void None %void_func
+              %main_label = OpLabel
+                 %param_1 = OpVariable %_ptr_Function_int Function
+                 %param_2 = OpVariable %_ptr_Function_Pair Function
+                %gidx_ptr = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
+                    %gidx = OpLoad %uint %gidx_ptr
+         %input_value_ptr = OpAccessChain %_ptr_Uniform_int %inputValues %int_0 %gidx
+             %input_value = OpLoad %int %input_value_ptr
+                            OpStore %param_1 %input_value
+                            OpStore %param_2 %const_Pair
+                  %retval = OpFunctionCall %int %add_second %param_1 %param_2
+        %output_value_ptr = OpAccessChain %_ptr_Uniform_int %outputValues %int_0 %gidx
+                            OpStore %output_value_ptr %retval
+                            OpReturn
+                            OpFunctionEnd
+              %add_second = OpFunction %int None %add_second_func_type
+               %value_ptr = OpFunctionParameter %_ptr_Function_int
+                    %pair = OpFunctionParameter %_ptr_Function_Pair
+        %add_second_label = OpLabel
+                   %value = OpLoad %int %value_ptr
+                            ; Access the second struct member, which is defined.
+         %pair_second_ptr = OpAccessChain %_ptr_Function_int %pair %int_1
+             %pair_second = OpLoad %int %pair_second_ptr
+              %add_result = OpIAdd %int %value %pair_second
+                            OpReturnValue %add_result
+                            OpFunctionEnd
+END
+
+BUFFER input_buffer DATA_TYPE int32 SIZE 10 SERIES_FROM 1000 INC_BY 1
+BUFFER output_buffer DATA_TYPE int32 SIZE 10 FILL 0
+BUFFER reference_buffer DATA_TYPE int32 SIZE 10 SERIES_FROM 1200 INC_BY 1
+
+PIPELINE compute compute_pipeline
+	ATTACH comp
+	BIND BUFFER input_buffer AS storage DESCRIPTOR_SET 0 BINDING 0
+	BIND BUFFER output_buffer AS storage DESCRIPTOR_SET 0 BINDING 1
+END
+
+RUN compute_pipeline 10 1 1
+EXPECT output_buffer EQ_BUFFER reference_buffer
diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/undef/undefined_spec_constant_composite.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/undef/undefined_spec_constant_composite.amber
new file mode 100644
index 0000000..5c04910
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/undef/undefined_spec_constant_composite.amber
@@ -0,0 +1,155 @@
+#!amber
+
+# Copyright 2020 Valve Corporation.
+# Copyright 2020 The Khronos Group Inc.
+#
+# 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.
+
+
+SHADER compute comp SPIRV-ASM
+;
+; The shader below is based on the following GLSL shader:
+;
+;     #version 450
+;
+;     struct Pair {
+;         int first;
+;         int second;
+;     };
+;
+;     const Pair constant_pair = { 100, 200 };
+;
+;     layout (constant_id=0) const int constantFirst = 0;
+;
+;     Pair spec_constant_pair = { constantFirst, 200 };
+;
+;     layout(set=0, binding=0, std430) buffer InputBlock {
+;         int array[10];
+;     } inputValues;
+;
+;     layout(set=0, binding=1, std430) buffer OutputBlock {
+;         int array[10];
+;     } outputValues;
+;
+;     int add_first_and_second (int value, Pair p1, Pair p2) {
+;         return value + p1.first + p2.second;
+;     }
+;
+;     void main() {
+;         uint idx = gl_GlobalInvocationID.x;
+;         outputValues.array[idx] = add_first_and_second(inputValues.array[idx], spec_constant_pair, constant_pair);
+;     }
+;
+; However, both the constant_pair and the spec_constant_pair have one of their members replaced by undefined values.
+;
+                              OpCapability Shader
+                    %std450 = OpExtInstImport "GLSL.std.450"
+                              OpMemoryModel Logical GLSL450
+                              OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
+                              OpExecutionMode %main LocalSize 1 1 1
+                              OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
+                              OpDecorate %_arr_int_uint_10 ArrayStride 4
+                              OpMemberDecorate %OutputBlock 0 Offset 0
+                              OpDecorate %OutputBlock BufferBlock
+                              OpDecorate %outputValues DescriptorSet 0
+                              OpDecorate %outputValues Binding 1
+                              OpMemberDecorate %InputBlock 0 Offset 0
+                              OpDecorate %InputBlock BufferBlock
+                              OpDecorate %inputValues DescriptorSet 0
+                              OpDecorate %inputValues Binding 0
+                              OpDecorate %spec_constant SpecId 0
+                      %void = OpTypeVoid
+                 %void_func = OpTypeFunction %void
+                       %int = OpTypeInt 32 1
+                      %uint = OpTypeInt 32 0
+                    %v3uint = OpTypeVector %uint 3
+                     %int_0 = OpConstant %int 0
+                     %int_1 = OpConstant %int 1
+                   %int_200 = OpConstant %int 200
+                    %uint_0 = OpConstant %uint 0
+                   %uint_10 = OpConstant %uint 10
+         %_ptr_Function_int = OpTypePointer Function %int
+                      %Pair = OpTypeStruct %int %int
+        %_ptr_Function_Pair = OpTypePointer Function %Pair
+%add_pair_members_func_type = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_Pair %_ptr_Function_Pair
+        %_ptr_Function_uint = OpTypePointer Function %uint
+         %_ptr_Input_v3uint = OpTypePointer Input %v3uint
+           %_ptr_Input_uint = OpTypePointer Input %uint
+          %_arr_int_uint_10 = OpTypeArray %int %uint_10
+               %OutputBlock = OpTypeStruct %_arr_int_uint_10
+  %_ptr_Uniform_OutputBlock = OpTypePointer Uniform %OutputBlock
+              %outputValues = OpVariable %_ptr_Uniform_OutputBlock Uniform
+                %InputBlock = OpTypeStruct %_arr_int_uint_10
+   %_ptr_Uniform_InputBlock = OpTypePointer Uniform %InputBlock
+               %inputValues = OpVariable %_ptr_Uniform_InputBlock Uniform
+                              ; Replaced %int_100 with an undefined int.
+                 %undef_int = OpUndef %int
+                              ; Composed a spec constant Pair with an undefined int in the second member.
+             %spec_constant = OpSpecConstant %int 0
+           %spec_const_Pair = OpSpecConstantComposite %Pair %spec_constant %undef_int
+                              ; Composed a constant Pair with the undefined int in the first member.
+                %const_Pair = OpConstantComposite %Pair %undef_int %int_200
+          %_ptr_Uniform_int = OpTypePointer Uniform %int
+     %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
+                      %main = OpFunction %void None %void_func
+                %main_label = OpLabel
+                   %param_1 = OpVariable %_ptr_Function_int Function
+                   %param_2 = OpVariable %_ptr_Function_Pair Function
+                   %param_3 = OpVariable %_ptr_Function_Pair Function
+                  %gidx_ptr = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
+                      %gidx = OpLoad %uint %gidx_ptr
+           %input_value_ptr = OpAccessChain %_ptr_Uniform_int %inputValues %int_0 %gidx
+               %input_value = OpLoad %int %input_value_ptr
+                              OpStore %param_1 %input_value
+                              OpStore %param_2 %spec_const_Pair
+                              OpStore %param_3 %const_Pair
+                              ; Pass the input value as the first argument.
+                              ; Pass the specialization constant Pair as the second argument.
+                              ; Pass the constant Pair as the third argument.
+                    %retval = OpFunctionCall %int %add_pair_members %param_1 %param_2 %param_3
+          %output_value_ptr = OpAccessChain %_ptr_Uniform_int %outputValues %int_0 %gidx
+                              OpStore %output_value_ptr %retval
+                              OpReturn
+                              OpFunctionEnd
+          %add_pair_members = OpFunction %int None %add_pair_members_func_type
+                 %value_ptr = OpFunctionParameter %_ptr_Function_int
+                    %pair_1 = OpFunctionParameter %_ptr_Function_Pair
+                    %pair_2 = OpFunctionParameter %_ptr_Function_Pair
+    %add_pair_members_label = OpLabel
+                     %value = OpLoad %int %value_ptr
+                              ; Access the first struct member from the first pair.
+                              ; Access the second struct member from the second pair.
+                              ; Both should be defined according to the function call above.
+          %pair_1_first_ptr = OpAccessChain %_ptr_Function_int %pair_1 %int_0
+         %pair_2_second_ptr = OpAccessChain %_ptr_Function_int %pair_2 %int_1
+              %pair_1_first = OpLoad %int %pair_1_first_ptr
+             %pair_2_second = OpLoad %int %pair_2_second_ptr
+            %partial_result = OpIAdd %int %value %pair_1_first
+              %final_result = OpIAdd %int %partial_result %pair_2_second
+                              OpReturnValue %final_result
+                              OpFunctionEnd
+
+END
+
+BUFFER input_buffer DATA_TYPE int32 SIZE 10 SERIES_FROM 1000 INC_BY 1
+BUFFER output_buffer DATA_TYPE int32 SIZE 10 FILL 0
+BUFFER reference_buffer DATA_TYPE int32 SIZE 10 SERIES_FROM 1600 INC_BY 1
+
+PIPELINE compute compute_pipeline
+	ATTACH comp SPECIALIZE 0 AS int32 400
+	BIND BUFFER input_buffer AS storage DESCRIPTOR_SET 0 BINDING 0
+	BIND BUFFER output_buffer AS storage DESCRIPTOR_SET 0 BINDING 1
+END
+
+RUN compute_pipeline 10 1 1
+EXPECT output_buffer EQ_BUFFER reference_buffer
diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/unreachable/unreachable-switch-merge-in-loop.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/unreachable/unreachable-switch-merge-in-loop.amber
new file mode 100644
index 0000000..9ef9341
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/unreachable/unreachable-switch-merge-in-loop.amber
@@ -0,0 +1,150 @@
+#!amber
+
+# Copyright 2020 Valve Corporation.
+# Copyright 2020 The Khronos Group Inc.
+#
+# 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.
+
+
+SHADER vertex vtx_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 30
+; Schema: 0
+;
+; Originally created from code like this one:
+;
+; #version 450
+; layout(location=0) in vec4 position;
+; void main() { gl_Position = position; }
+;
+                            OpCapability Shader
+                       %1 = OpExtInstImport "GLSL.std.450"
+                            OpMemoryModel Logical GLSL450
+                            OpEntryPoint Vertex %main "main" %_ %position
+                            OpSource GLSL 450
+                            OpName %main "main"
+                            OpName %gl_PerVertex "gl_PerVertex"
+                            OpMemberName %gl_PerVertex 0 "gl_Position"
+                            OpMemberName %gl_PerVertex 1 "gl_PointSize"
+                            OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
+                            OpMemberName %gl_PerVertex 3 "gl_CullDistance"
+                            OpName %_ ""
+                            OpName %position "position"
+                            OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
+                            OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
+                            OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
+                            OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
+                            OpDecorate %gl_PerVertex Block
+                            OpDecorate %position Location 0
+                    %void = OpTypeVoid
+                       %3 = OpTypeFunction %void
+                     %int = OpTypeInt 32 1
+                   %int_1 = OpConstant %int 1
+                   %float = OpTypeFloat 32
+                 %v4float = OpTypeVector %float 4
+                    %uint = OpTypeInt 32 0
+                  %uint_1 = OpConstant %uint 1
+       %_arr_float_uint_1 = OpTypeArray %float %uint_1
+            %gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
+%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
+                       %_ = OpVariable %_ptr_Output_gl_PerVertex Output
+                   %int_0 = OpConstant %int 0
+      %_ptr_Input_v4float = OpTypePointer Input %v4float
+                %position = OpVariable %_ptr_Input_v4float Input
+     %_ptr_Output_v4float = OpTypePointer Output %v4float
+                    %main = OpFunction %void None %3
+;
+; The rest of code below has been manually tuned.
+; The assignment to gl_Position is in the OpLoad, OpAccessChain and OpStore sequence.
+; It's wrapped inside a loop statement roughly equivalent to this:
+;
+; for (;;) {
+;     switch (1) {
+;         default:
+;            gl_Position = position;
+;            goto end;
+;     }
+; }
+; end:
+; return;
+;
+; Which means the code jumps directly from the end of the default block to the
+; loop exit, something that cannot be directly done in GLSL because it has no
+; goto nor any other equivalent instruction to directly exit the loop.
+;
+; The switch's merge block is unreachable and marked with OpUnreachable.
+; According to VK-GL-CTS issue #952, at least one driver goes into an infinite
+; loop when doing so.
+;
+              %main_start = OpLabel
+                            OpBranch %loop_start
+              %loop_start = OpLabel
+                            OpLoopMerge %loop_exit %loop_end None
+                            OpBranch %select_start
+            %select_start = OpLabel
+                            OpSelectionMerge %select_merge None
+                            OpSwitch %int_1 %switch_default
+          %switch_default = OpLabel
+                      %25 = OpLoad %v4float %position
+                      %27 = OpAccessChain %_ptr_Output_v4float %_ %int_0
+                            OpStore %27 %25
+                            OpBranch %loop_exit
+            %select_merge = OpLabel
+                            OpUnreachable
+                %loop_end = OpLabel
+                            OpBranch %loop_start
+               %loop_exit = OpLabel
+                            OpReturn
+                            OpFunctionEnd
+
+END
+
+SHADER fragment frag_shader GLSL
+#version 450
+
+layout(location = 0) out vec4 color_out;
+
+void main() {
+	// Red color.
+	color_out = vec4(1.0, 0.0, 0.0, 1.0);
+}
+END
+
+# Full-screen quad.
+BUFFER position_buf DATA_TYPE vec2<float> DATA
+-1 -1
+ 1 -1
+-1  1
+-1  1
+ 1 -1
+ 1  1
+END
+
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics pipeline
+  ATTACH vtx_shader
+  ATTACH frag_shader
+
+  VERTEX_DATA position_buf LOCATION 0
+
+  FRAMEBUFFER_SIZE 64 64
+  BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+CLEAR pipeline
+
+RUN pipeline DRAW_ARRAY AS TRIANGLE_LIST START_IDX 0 COUNT 6
+EXPECT framebuffer IDX 0 0 SIZE 64 64 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/function_params/sampler_param.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/function_params/sampler_param.amber
new file mode 100644
index 0000000..2585c31
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/function_params/sampler_param.amber
@@ -0,0 +1,130 @@
+#!amber
+
+# Copyright 2020 Valve Corporation.
+# Copyright 2020 The Khronos Group Inc.
+#
+# 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.
+
+SHADER vertex vtx_passthrough PASSTHROUGH
+
+SHADER fragment frag_green GLSL
+#version 450
+layout(location=0) out vec4 out_color;
+void main() {
+  out_color = vec4(0.0, 1.0, 0.0, 1.0);
+}
+END
+
+SHADER vertex vtx_shader GLSL
+#version 450
+
+layout(location = 0) in vec4 position;
+layout(location = 0) out vec2 textureCoordinates;
+
+void main() {
+  gl_Position = position;
+  textureCoordinates = vec2(0.0, 0.0);
+}
+END
+
+SHADER fragment frag_shader SPIRV-ASM
+                           OpCapability Shader
+                           OpMemoryModel Logical GLSL450
+                           OpEntryPoint Fragment %main "main" %fragColor %vtxTexCoords
+                           OpExecutionMode %main OriginUpperLeft
+                           OpDecorate %fragColor Location 0 ; Output
+                           OpDecorate %vtxTexCoords Location 0 ; Input
+                           OpDecorate %sampler_ptr DescriptorSet 0
+                           OpDecorate %sampler_ptr Binding 0
+
+                           ; Basic types.
+                   %void = OpTypeVoid
+            %void_func_t = OpTypeFunction %void
+                  %float = OpTypeFloat 32
+                %v2float = OpTypeVector %float 2
+                %v4float = OpTypeVector %float 4
+               %image_2d = OpTypeImage %float 2D 0 0 0 1 Unknown
+            %sampled_img = OpTypeSampledImage %image_2d
+        %sampling_func_t = OpTypeFunction %v4float %sampled_img %v2float
+
+                           ; Pointer types.
+%sampled_img_uniform_ptr = OpTypePointer UniformConstant %sampled_img
+        %v4float_out_ptr = OpTypePointer Output %v4float
+      %v2float_input_ptr = OpTypePointer Input %v2float
+
+                           ; In/Out variables.
+              %fragColor = OpVariable %v4float_out_ptr Output
+            %sampler_ptr = OpVariable %sampled_img_uniform_ptr UniformConstant
+           %vtxTexCoords = OpVariable %v2float_input_ptr Input
+
+                           ; Main function.
+                   %main = OpFunction %void None %void_func_t
+             %main_label = OpLabel
+             %tex_coords = OpLoad %v2float %vtxTexCoords
+            %sampler_arg = OpLoad %sampled_img %sampler_ptr
+         %frag_color_val = OpFunctionCall %v4float %sampling_func %sampler_arg %tex_coords
+                           OpStore %fragColor %frag_color_val
+                           OpReturn
+                           OpFunctionEnd
+
+                           ; Auxiliar texture sampling function, receiving a sampled image as its argument.
+          %sampling_func = OpFunction %v4float None %sampling_func_t
+                %sampler = OpFunctionParameter %sampled_img
+                 %coords = OpFunctionParameter %v2float
+    %sampling_func_label = OpLabel
+                 %retval = OpImageSampleImplicitLod %v4float %sampler %coords
+                           OpReturnValue %retval
+                           OpFunctionEnd
+END
+
+# Full-screen quad.
+BUFFER position_buf DATA_TYPE vec4<float> DATA
+-1 -1    0 1
+ 1 -1    0 1
+-1  1    0 1
+-1  1    0 1
+ 1 -1    0 1
+ 1  1    0 1
+END
+
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+BUFFER texture FORMAT R8G8B8A8_UNORM
+SAMPLER sampler
+
+PIPELINE graphics texgen_pipeline
+  ATTACH vtx_passthrough
+  ATTACH frag_green
+
+  FRAMEBUFFER_SIZE 1 1
+  BIND BUFFER texture AS color LOCATION 0
+END
+
+PIPELINE graphics main_pipeline
+  ATTACH vtx_shader
+  ATTACH frag_shader
+
+  VERTEX_DATA position_buf LOCATION 0
+  BIND BUFFER texture AS combined_image_sampler SAMPLER sampler DESCRIPTOR_SET 0 BINDING 0
+
+  FRAMEBUFFER_SIZE 64 64
+  BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+CLEAR texgen_pipeline
+RUN texgen_pipeline DRAW_RECT POS 0 0 SIZE 1 1
+EXPECT texture IDX 0 0 SIZE 1 1 EQ_RGBA 0 255 0 255
+
+CLEAR_COLOR main_pipeline 0 0 0 255
+CLEAR main_pipeline
+RUN main_pipeline DRAW_ARRAY AS TRIANGLE_LIST START_IDX 0 COUNT 6
+EXPECT framebuffer IDX 0 0 SIZE 64 64 EQ_RGBA 0 255 0 255
diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/member_decorate_string.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/member_decorate_string.amber
new file mode 100644
index 0000000..8f09777
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/member_decorate_string.amber
@@ -0,0 +1,124 @@
+#!amber
+
+# Copyright 2020 Valve Corporation.
+# Copyright 2020 The Khronos Group Inc.
+#
+# 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.
+
+DEVICE_EXTENSION VK_KHR_shader_float_controls
+DEVICE_EXTENSION VK_KHR_spirv_1_4
+
+SHADER vertex vtx_shader SPIRV-ASM
+; Based on:
+;
+; #version 450
+; #extension GL_ARB_enhanced_layouts : require
+;
+; layout(location=0) in vec4 in_pos;
+;
+; layout(location=0) out OutputBlock
+; {
+;     layout(location=0) vec4 out_color;
+; };
+;
+; void main()
+; {
+;     gl_Position = in_pos;
+;     out_color = vec4(0.0, 1.0, 0.0, 1.0);
+; }
+
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %main "main" %_ %in_pos %__0
+               OpSource GLSL 450
+               OpSourceExtension "GL_ARB_enhanced_layouts"
+               OpName %main "main"
+               OpName %gl_PerVertex "gl_PerVertex"
+               OpMemberName %gl_PerVertex 0 "gl_Position"
+               OpMemberName %gl_PerVertex 1 "gl_PointSize"
+               OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
+               OpMemberName %gl_PerVertex 3 "gl_CullDistance"
+               OpName %_ ""
+               OpName %in_pos "in_pos"
+               OpName %OutputBlock "OutputBlock"
+               OpMemberName %OutputBlock 0 "out_color"
+               OpName %__0 ""
+               OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
+               OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
+               OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
+               OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
+               OpDecorate %gl_PerVertex Block
+               OpDecorate %in_pos Location 0
+               OpMemberDecorate %OutputBlock 0 Location 0
+; Testing OpMemberDecorateString below.
+               OpMemberDecorateString %OutputBlock 0 UserSemantic "FOO"
+               OpDecorate %OutputBlock Block
+       %void = OpTypeVoid
+          %3 = OpTypeFunction %void
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+       %uint = OpTypeInt 32 0
+     %uint_1 = OpConstant %uint 1
+%_arr_float_uint_1 = OpTypeArray %float %uint_1
+%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
+%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
+          %_ = OpVariable %_ptr_Output_gl_PerVertex Output
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+     %in_pos = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+%OutputBlock = OpTypeStruct %v4float
+%_ptr_Output_OutputBlock = OpTypePointer Output %OutputBlock
+        %__0 = OpVariable %_ptr_Output_OutputBlock Output
+    %float_0 = OpConstant %float 0
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
+       %main = OpFunction %void None %3
+          %5 = OpLabel
+         %18 = OpLoad %v4float %in_pos
+         %20 = OpAccessChain %_ptr_Output_v4float %_ %int_0
+               OpStore %20 %18
+         %27 = OpAccessChain %_ptr_Output_v4float %__0 %int_0
+               OpStore %27 %26
+               OpReturn
+               OpFunctionEnd
+END
+
+SHADER fragment frag_shader GLSL
+#version 450
+// Ignoring input color.
+layout(location=0) out vec4 out_color;
+
+void main()
+{
+    out_color = vec4(0.0, 1.0, 0.0, 1.0);
+}
+END
+
+BUFFER framebuffer_img FORMAT R8G8B8A8_UNORM
+
+PIPELINE graphics graphics_pipeline
+  ATTACH vtx_shader
+  ATTACH frag_shader
+  BIND BUFFER framebuffer_img AS color LOCATION 0
+END
+
+RUN graphics_pipeline DRAW_RECT POS 0 0 SIZE 250 250
+EXPECT framebuffer_img IDX 0 0 SIZE 250 250 EQ_RGBA 0 255 0 255
diff --git a/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texel_fetch.amber b/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texel_fetch.amber
new file mode 100644
index 0000000..a32a610
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texel_fetch.amber
@@ -0,0 +1,105 @@
+#!amber
+
+# Copyright 2019 Google LLC.
+# Copyright 2019 The Khronos Group Inc.
+#
+# 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
+#
+#     https://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.
+
+SHADER vertex vert_shader_mipclear PASSTHROUGH
+
+SHADER vertex vert_shader_lod GLSL
+#version 430
+
+layout(location = 0) in vec3 position_in;
+layout(location = 0) out vec4 color_out;
+layout(set = 0, binding = 0) uniform highp sampler2D tex;
+
+void main() {
+  gl_Position = vec4(position_in, 1.0);
+  // Pick a color from the center of a mipmap. Each corner point gets its own mip level.
+  int lod = gl_VertexIndex % 4;
+  int center = 256 >> lod;
+  color_out = texelFetch(tex, ivec2(center), lod);
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+
+layout(location = 0) in vec4 color_in;
+layout(location = 0) out vec4 color_out;
+
+void main() {
+  color_out = color_in;
+}
+END
+
+BUFFER texture FORMAT B8G8R8A8_UNORM MIP_LEVELS 4
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+SAMPLER sampler MAX_LOD 4.0
+
+PIPELINE graphics mipclear_pipeline0
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 0
+  FRAMEBUFFER_SIZE 512 512
+END
+
+PIPELINE graphics mipclear_pipeline1
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 1
+  FRAMEBUFFER_SIZE 256 256
+END
+
+PIPELINE graphics mipclear_pipeline2
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 2
+  FRAMEBUFFER_SIZE 128 128
+END
+
+PIPELINE graphics mipclear_pipeline3
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 3
+  FRAMEBUFFER_SIZE 64 64
+END
+
+PIPELINE graphics lod_pipeline
+  ATTACH vert_shader_lod
+  ATTACH frag_shader
+  BIND BUFFER texture AS combined_image_sampler SAMPLER sampler DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER framebuffer AS color LOCATION 0
+  FRAMEBUFFER_SIZE 512 512
+END
+
+# Clear all mip levels to different color.
+CLEAR_COLOR mipclear_pipeline0 255 0 0 255
+CLEAR mipclear_pipeline0
+CLEAR_COLOR mipclear_pipeline1 0 255 0 255
+CLEAR mipclear_pipeline1
+CLEAR_COLOR mipclear_pipeline2 0 0 255 255
+CLEAR mipclear_pipeline2
+CLEAR_COLOR mipclear_pipeline3 255 255 0 255
+CLEAR mipclear_pipeline3
+
+CLEAR_COLOR lod_pipeline 0 0 0 255
+CLEAR lod_pipeline
+RUN lod_pipeline DRAW_RECT POS 0 0 SIZE 512 512
+
+# Check corners of the frame buffer: each should have a color from a different mip level.
+EXPECT framebuffer IDX 0   511 SIZE 1 1 EQ_RGBA 255 0   0   255
+EXPECT framebuffer IDX 511 0   SIZE 1 1 EQ_RGBA 255 255 0   255
+EXPECT framebuffer IDX 511 511 SIZE 1 1 EQ_RGBA 0   0   255 255
+EXPECT framebuffer IDX 0   0   SIZE 1 1 EQ_RGBA 0   255 0   255
diff --git a/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_grad.amber b/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_grad.amber
new file mode 100644
index 0000000..d7648bc
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_grad.amber
@@ -0,0 +1,90 @@
+#!amber
+
+# Copyright 2019 Google LLC.
+# Copyright 2019 The Khronos Group Inc.
+#
+# 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
+#
+#     https://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.
+
+SHADER vertex vert_shader_mipclear PASSTHROUGH
+
+SHADER vertex vert_shader_lod GLSL
+#version 430
+
+layout(location = 0) in vec3 position_in;
+layout(location = 0) out vec4 color_out;
+layout(set = 0, binding = 0) uniform highp sampler2D tex;
+
+void main() {
+  gl_Position = vec4(position_in, 1.0);
+  // Vary dPdx and dPdy based on vertex index to force
+  // LOD 0 or LOD 1.
+  vec2 v = vec2(0);
+  if (gl_VertexIndex % 2 != 0)
+      v = vec2(1);
+
+  color_out = vec4(textureGrad(tex, vec2(0.5), v, v));
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+
+layout(location = 0) in vec4 color_in;
+layout(location = 0) out vec4 color_out;
+
+void main() {
+  color_out = color_in;
+}
+END
+
+BUFFER texture FORMAT B8G8R8A8_UNORM MIP_LEVELS 2
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+SAMPLER sampler MAX_LOD 2.0
+
+PIPELINE graphics mipclear_pipeline0
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 0
+  FRAMEBUFFER_SIZE 512 512
+END
+
+PIPELINE graphics mipclear_pipeline1
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 1
+  FRAMEBUFFER_SIZE 256 256
+END
+
+PIPELINE graphics lod_pipeline
+  ATTACH vert_shader_lod
+  ATTACH frag_shader
+  BIND BUFFER texture AS combined_image_sampler SAMPLER sampler DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER framebuffer AS color LOCATION 0
+  FRAMEBUFFER_SIZE 512 512
+END
+
+# Clear all mip levels to different color.
+CLEAR_COLOR mipclear_pipeline0 255 0 0 255
+CLEAR mipclear_pipeline0
+CLEAR_COLOR mipclear_pipeline1 0 255 0 255
+CLEAR mipclear_pipeline1
+
+CLEAR_COLOR lod_pipeline 0 0 0 255
+CLEAR lod_pipeline
+RUN lod_pipeline DRAW_RECT POS 0 0 SIZE 512 512
+
+# Check corners of the frame buffer: even vertices should have LOD 0 and odd ones LOD 1.
+EXPECT framebuffer IDX 0   511 SIZE 1 1 EQ_RGBA 255 0   0 255
+EXPECT framebuffer IDX 511 0   SIZE 1 1 EQ_RGBA 0   255 0 255
+EXPECT framebuffer IDX 511 511 SIZE 1 1 EQ_RGBA 255 0   0 255
+EXPECT framebuffer IDX 0   0   SIZE 1 1 EQ_RGBA 0   255 0 255
diff --git a/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_lod.amber b/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_lod.amber
new file mode 100644
index 0000000..dc69213
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_lod.amber
@@ -0,0 +1,103 @@
+#!amber
+
+# Copyright 2019 Google LLC.
+# Copyright 2019 The Khronos Group Inc.
+#
+# 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
+#
+#     https://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.
+
+SHADER vertex vert_shader_mipclear PASSTHROUGH
+
+SHADER vertex vert_shader_lod GLSL
+#version 430
+
+layout(location = 0) in vec3 position_in;
+layout(location = 0) out vec4 color_out;
+layout(set = 0, binding = 0) uniform highp sampler2D tex;
+
+void main() {
+  gl_Position = vec4(position_in, 1.0);
+  // Pick a color from the center of a mipmap. Each corner point gets its own mip level.
+  color_out = vec4(textureLod(tex, vec2(0.5), float(gl_VertexIndex % 4)));
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+
+layout(location = 0) in vec4 color_in;
+layout(location = 0) out vec4 color_out;
+
+void main() {
+  color_out = color_in;
+}
+END
+
+BUFFER texture FORMAT B8G8R8A8_UNORM MIP_LEVELS 4
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+SAMPLER sampler MAX_LOD 4.0
+
+PIPELINE graphics mipclear_pipeline0
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 0
+  FRAMEBUFFER_SIZE 512 512
+END
+
+PIPELINE graphics mipclear_pipeline1
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 1
+  FRAMEBUFFER_SIZE 256 256
+END
+
+PIPELINE graphics mipclear_pipeline2
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 2
+  FRAMEBUFFER_SIZE 128 128
+END
+
+PIPELINE graphics mipclear_pipeline3
+  ATTACH vert_shader_mipclear
+  ATTACH frag_shader
+  BIND BUFFER texture AS color LOCATION 0 BASE_MIP_LEVEL 3
+  FRAMEBUFFER_SIZE 64 64
+END
+
+PIPELINE graphics lod_pipeline
+  ATTACH vert_shader_lod
+  ATTACH frag_shader
+  BIND BUFFER texture AS combined_image_sampler SAMPLER sampler DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER framebuffer AS color LOCATION 0
+  FRAMEBUFFER_SIZE 512 512
+END
+
+# Clear all mip levels to different color.
+CLEAR_COLOR mipclear_pipeline0 255 0 0 255
+CLEAR mipclear_pipeline0
+CLEAR_COLOR mipclear_pipeline1 0 255 0 255
+CLEAR mipclear_pipeline1
+CLEAR_COLOR mipclear_pipeline2 0 0 255 255
+CLEAR mipclear_pipeline2
+CLEAR_COLOR mipclear_pipeline3 255 255 0 255
+CLEAR mipclear_pipeline3
+
+CLEAR_COLOR lod_pipeline 0 0 0 255
+CLEAR lod_pipeline
+RUN lod_pipeline DRAW_RECT POS 0 0 SIZE 512 512
+
+# Check corners of the frame buffer: each should have a color from a different mip level.
+EXPECT framebuffer IDX 0   511 SIZE 1 1 EQ_RGBA 255 0   0   255
+EXPECT framebuffer IDX 511 0   SIZE 1 1 EQ_RGBA 255 255 0   255
+EXPECT framebuffer IDX 511 511 SIZE 1 1 EQ_RGBA 0   0   255 255
+EXPECT framebuffer IDX 0   0   SIZE 1 1 EQ_RGBA 0   255 0   255
diff --git a/external/vulkancts/doc/vulkan-cts-withdrawal-2020-01.txt b/external/vulkancts/doc/vulkan-cts-withdrawal-2020-01.txt
new file mode 100644
index 0000000..d525c8b
--- /dev/null
+++ b/external/vulkancts/doc/vulkan-cts-withdrawal-2020-01.txt
@@ -0,0 +1,35 @@
+Dear Adopters,
+
+This announcement provides notification that the Khronos Group Inc. intends
+to withdraw Vulkan CTS 1.1.3.x releases.
+
+These releases are being discontinued due to improved quality and coverage
+provided by more recent releases. Once the releases are withdrawn it will not be
+possible to make conformance submissions against these releases.
+
+The Khronos Group recommends updating to Vulkan CTS 1.2.1.x and more recent releases
+as early as possible.
+
+This announcement covers the following tags as listed on
+https://github.com/KhronosGroup/VK-GL-CTS/tags:
+- vulkan-cts-1.1.3.0
+- vulkan-cts-1.1.3.1
+- vulkan-cts-1.1.3.2
+- vulkan-cts-1.1.3.3
+
+More information about Khronos Conformance and withdrawal policies can be found
+in the Khronos Group Conformance Process document
+(https://www.khronos.org/files/conformance_procedures.pdf) Attachment M.
+Please contact the Vulkan CTS TSG chair (alexander.galazin at arm.com) or
+the Vulkan Working Group chair (tom.olson at arm.com) if you have any questions.
+
+Below are some key dates to acknowledge:
+
+2020-01-31 Notice of intent to withdraw Vulkan CTS 1.1.3.x
+           distributed via email to adopters.
+
+2020-07-29 The affected releases are withdrawn.
+
+30 January 2020
+Alexander Galazin
+Vulkan CTS TSG Chair
diff --git a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
index 8b2b2da..ebbd5ec 100644
--- a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
+++ b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
@@ -11,12 +11,14 @@
 		functions.push_back("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
 		functions.push_back("vkGetPhysicalDeviceSurfaceFormatsKHR");
 		functions.push_back("vkGetPhysicalDeviceSurfacePresentModesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_swapchain")
+	if (extName == "VK_KHR_swapchain")
 	{
 		if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetPhysicalDevicePresentRectanglesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_display")
+	if (extName == "VK_KHR_display")
 	{
 		functions.push_back("vkGetPhysicalDeviceDisplayPropertiesKHR");
 		functions.push_back("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
@@ -25,8 +27,21 @@
 		functions.push_back("vkCreateDisplayModeKHR");
 		functions.push_back("vkGetDisplayPlaneCapabilitiesKHR");
 		functions.push_back("vkCreateDisplayPlaneSurfaceKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_get_physical_device_properties2")
+	if (extName == "VK_KHR_display_swapchain")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_sampler_mirror_clamp_to_edge")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_multiview")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_physical_device_properties2")
 	{
 		functions.push_back("vkGetPhysicalDeviceFeatures2KHR");
 		functions.push_back("vkGetPhysicalDeviceProperties2KHR");
@@ -35,155 +50,808 @@
 		functions.push_back("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
 		functions.push_back("vkGetPhysicalDeviceMemoryProperties2KHR");
 		functions.push_back("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_device_group_creation")
+	if (extName == "VK_KHR_device_group")
+	{
+		if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetPhysicalDevicePresentRectanglesKHR");
+		return;
+	}
+	if (extName == "VK_KHR_shader_draw_parameters")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_maintenance1")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_device_group_creation")
 	{
 		functions.push_back("vkEnumeratePhysicalDeviceGroupsKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_memory_capabilities")
+	if (extName == "VK_KHR_external_memory_capabilities")
 	{
 		functions.push_back("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_semaphore_capabilities")
+	if (extName == "VK_KHR_external_memory")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_memory_fd")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_semaphore_capabilities")
 	{
 		functions.push_back("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_fence_capabilities")
+	if (extName == "VK_KHR_external_semaphore")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_semaphore_fd")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_push_descriptor")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_float16_int8")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_16bit_storage")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_incremental_present")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_descriptor_update_template")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_imageless_framebuffer")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_create_renderpass2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shared_presentable_image")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_fence_capabilities")
 	{
 		functions.push_back("vkGetPhysicalDeviceExternalFencePropertiesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_performance_query")
+	if (extName == "VK_KHR_external_fence")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_fence_fd")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_performance_query")
 	{
 		functions.push_back("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
 		functions.push_back("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_get_surface_capabilities2")
+	if (extName == "VK_KHR_maintenance2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_surface_capabilities2")
 	{
 		functions.push_back("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
 		functions.push_back("vkGetPhysicalDeviceSurfaceFormats2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_get_display_properties2")
+	if (extName == "VK_KHR_variable_pointers")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_display_properties2")
 	{
 		functions.push_back("vkGetPhysicalDeviceDisplayProperties2KHR");
 		functions.push_back("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
 		functions.push_back("vkGetDisplayModeProperties2KHR");
 		functions.push_back("vkGetDisplayPlaneCapabilities2KHR");
+		return;
 	}
-	else if (extName == "VK_EXT_debug_report")
+	if (extName == "VK_KHR_dedicated_allocation")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_storage_buffer_storage_class")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_relaxed_block_layout")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_memory_requirements2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_image_format_list")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_sampler_ycbcr_conversion")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_bind_memory2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_maintenance3")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_draw_indirect_count")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_subgroup_extended_types")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_8bit_storage")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_atomic_int64")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_clock")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_driver_properties")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_float_controls")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_depth_stencil_resolve")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_swapchain_mutable_format")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_timeline_semaphore")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_vulkan_memory_model")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_spirv_1_4")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_surface_protected_capabilities")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_separate_depth_stencil_layouts")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_uniform_buffer_standard_layout")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_buffer_device_address")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_pipeline_executable_properties")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_debug_report")
 	{
 		functions.push_back("vkCreateDebugReportCallbackEXT");
 		functions.push_back("vkDestroyDebugReportCallbackEXT");
 		functions.push_back("vkDebugReportMessageEXT");
+		return;
 	}
-	else if (extName == "VK_NV_external_memory_capabilities")
+	if (extName == "VK_NV_glsl_shader")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_depth_range_unrestricted")
+	{
+		return;
+	}
+	if (extName == "VK_IMG_filter_cubic")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_rasterization_order")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_trinary_minmax")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_explicit_vertex_parameter")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_debug_marker")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_gcn_shader")
+	{
+		return;
+	}
+	if (extName == "VK_NV_dedicated_allocation")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_transform_feedback")
+	{
+		return;
+	}
+	if (extName == "VK_NVX_image_view_handle")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_draw_indirect_count")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_negative_viewport_height")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_gpu_shader_half_float")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_ballot")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_texture_gather_bias_lod")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_info")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_image_load_store_lod")
+	{
+		return;
+	}
+	if (extName == "VK_NV_corner_sampled_image")
+	{
+		return;
+	}
+	if (extName == "VK_IMG_format_pvrtc")
+	{
+		return;
+	}
+	if (extName == "VK_NV_external_memory_capabilities")
 	{
 		functions.push_back("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
+		return;
 	}
-	else if (extName == "VK_NVX_device_generated_commands")
+	if (extName == "VK_NV_external_memory")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_validation_flags")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_subgroup_ballot")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_subgroup_vote")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_texture_compression_astc_hdr")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_astc_decode_mode")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_conditional_rendering")
+	{
+		return;
+	}
+	if (extName == "VK_NVX_device_generated_commands")
 	{
 		functions.push_back("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
+		return;
 	}
-	else if (extName == "VK_EXT_direct_mode_display")
+	if (extName == "VK_NV_clip_space_w_scaling")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_direct_mode_display")
 	{
 		functions.push_back("vkReleaseDisplayEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_display_surface_counter")
+	if (extName == "VK_EXT_display_surface_counter")
 	{
 		functions.push_back("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
+		return;
 	}
-	else if (extName == "VK_EXT_debug_utils")
+	if (extName == "VK_EXT_display_control")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_display_timing")
+	{
+		return;
+	}
+	if (extName == "VK_NV_sample_mask_override_coverage")
+	{
+		return;
+	}
+	if (extName == "VK_NV_geometry_shader_passthrough")
+	{
+		return;
+	}
+	if (extName == "VK_NV_viewport_array2")
+	{
+		return;
+	}
+	if (extName == "VK_NVX_multiview_per_view_attributes")
+	{
+		return;
+	}
+	if (extName == "VK_NV_viewport_swizzle")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_discard_rectangles")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_conservative_rasterization")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_depth_clip_enable")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_swapchain_colorspace")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_hdr_metadata")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_external_memory_dma_buf")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_queue_family_foreign")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_debug_utils")
 	{
 		functions.push_back("vkCreateDebugUtilsMessengerEXT");
 		functions.push_back("vkDestroyDebugUtilsMessengerEXT");
 		functions.push_back("vkSubmitDebugUtilsMessageEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_sample_locations")
+	if (extName == "VK_EXT_sampler_filter_minmax")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_gpu_shader_int16")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_mixed_attachment_samples")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_fragment_mask")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_inline_uniform_block")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_stencil_export")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_sample_locations")
 	{
 		functions.push_back("vkGetPhysicalDeviceMultisamplePropertiesEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_calibrated_timestamps")
+	if (extName == "VK_EXT_blend_operation_advanced")
+	{
+		return;
+	}
+	if (extName == "VK_NV_fragment_coverage_to_color")
+	{
+		return;
+	}
+	if (extName == "VK_NV_framebuffer_mixed_samples")
+	{
+		return;
+	}
+	if (extName == "VK_NV_fill_rectangle")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shader_sm_builtins")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_post_depth_coverage")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_image_drm_format_modifier")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_validation_cache")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_descriptor_indexing")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_viewport_index_layer")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shading_rate_image")
+	{
+		return;
+	}
+	if (extName == "VK_NV_ray_tracing")
+	{
+		return;
+	}
+	if (extName == "VK_NV_representative_fragment_test")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_filter_cubic")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_global_priority")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_external_memory_host")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_buffer_marker")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_pipeline_compiler_control")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_calibrated_timestamps")
 	{
 		functions.push_back("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_tooling_info")
+	if (extName == "VK_AMD_shader_core_properties")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_memory_overallocation_behavior")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_vertex_attribute_divisor")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_pipeline_creation_feedback")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shader_subgroup_partitioned")
+	{
+		return;
+	}
+	if (extName == "VK_NV_compute_shader_derivatives")
+	{
+		return;
+	}
+	if (extName == "VK_NV_mesh_shader")
+	{
+		return;
+	}
+	if (extName == "VK_NV_fragment_shader_barycentric")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shader_image_footprint")
+	{
+		return;
+	}
+	if (extName == "VK_NV_scissor_exclusive")
+	{
+		return;
+	}
+	if (extName == "VK_NV_device_diagnostic_checkpoints")
+	{
+		return;
+	}
+	if (extName == "VK_INTEL_shader_integer_functions2")
+	{
+		return;
+	}
+	if (extName == "VK_INTEL_performance_query")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_pci_bus_info")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_display_native_hdr")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_fragment_density_map")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_scalar_block_layout")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_hlsl_functionality1")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_decorate_string")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_subgroup_size_control")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_core_properties2")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_device_coherent_memory")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_memory_budget")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_memory_priority")
+	{
+		return;
+	}
+	if (extName == "VK_NV_dedicated_allocation_image_aliasing")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_buffer_device_address")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_tooling_info")
 	{
 		functions.push_back("vkGetPhysicalDeviceToolPropertiesEXT");
+		return;
 	}
-	else if (extName == "VK_NV_cooperative_matrix")
+	if (extName == "VK_EXT_separate_stencil_usage")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_validation_features")
+	{
+		return;
+	}
+	if (extName == "VK_NV_cooperative_matrix")
 	{
 		functions.push_back("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
+		return;
 	}
-	else if (extName == "VK_NV_coverage_reduction_mode")
+	if (extName == "VK_NV_coverage_reduction_mode")
 	{
 		functions.push_back("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
+		return;
 	}
-	else if (extName == "VK_EXT_headless_surface")
+	if (extName == "VK_EXT_fragment_shader_interlock")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_ycbcr_image_arrays")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_headless_surface")
 	{
 		functions.push_back("vkCreateHeadlessSurfaceEXT");
+		return;
 	}
-	else if (extName == "VK_KHR_android_surface")
+	if (extName == "VK_EXT_line_rasterization")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_host_query_reset")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_index_type_uint8")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_demote_to_helper_invocation")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_texel_buffer_alignment")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_user_type")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_android_surface")
 	{
 		functions.push_back("vkCreateAndroidSurfaceKHR");
+		return;
 	}
-	else if (extName == "VK_FUCHSIA_imagepipe_surface")
+	if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
+	{
+		return;
+	}
+	if (extName == "VK_FUCHSIA_imagepipe_surface")
 	{
 		functions.push_back("vkCreateImagePipeSurfaceFUCHSIA");
+		return;
 	}
-	else if (extName == "VK_GGP_stream_descriptor_surface")
+	if (extName == "VK_GGP_stream_descriptor_surface")
 	{
 		functions.push_back("vkCreateStreamDescriptorSurfaceGGP");
+		return;
 	}
-	else if (extName == "VK_MVK_ios_surface")
+	if (extName == "VK_GGP_frame_token")
+	{
+		return;
+	}
+	if (extName == "VK_MVK_ios_surface")
 	{
 		functions.push_back("vkCreateIOSSurfaceMVK");
+		return;
 	}
-	else if (extName == "VK_MVK_macos_surface")
+	if (extName == "VK_MVK_macos_surface")
 	{
 		functions.push_back("vkCreateMacOSSurfaceMVK");
+		return;
 	}
-	else if (extName == "VK_EXT_metal_surface")
+	if (extName == "VK_EXT_metal_surface")
 	{
 		functions.push_back("vkCreateMetalSurfaceEXT");
+		return;
 	}
-	else if (extName == "VK_NN_vi_surface")
+	if (extName == "VK_NN_vi_surface")
 	{
 		functions.push_back("vkCreateViSurfaceNN");
+		return;
 	}
-	else if (extName == "VK_KHR_wayland_surface")
+	if (extName == "VK_KHR_wayland_surface")
 	{
 		functions.push_back("vkCreateWaylandSurfaceKHR");
 		functions.push_back("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_win32_surface")
+	if (extName == "VK_KHR_win32_surface")
 	{
 		functions.push_back("vkCreateWin32SurfaceKHR");
 		functions.push_back("vkGetPhysicalDeviceWin32PresentationSupportKHR");
+		return;
 	}
-	else if (extName == "VK_EXT_full_screen_exclusive")
+	if (extName == "VK_KHR_external_memory_win32")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_win32_keyed_mutex")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_semaphore_win32")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_fence_win32")
+	{
+		return;
+	}
+	if (extName == "VK_NV_external_memory_win32")
+	{
+		return;
+	}
+	if (extName == "VK_NV_win32_keyed_mutex")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_full_screen_exclusive")
 	{
 		functions.push_back("vkGetPhysicalDeviceSurfacePresentModes2EXT");
+		return;
 	}
-	else if (extName == "VK_KHR_xcb_surface")
+	if (extName == "VK_KHR_xcb_surface")
 	{
 		functions.push_back("vkCreateXcbSurfaceKHR");
 		functions.push_back("vkGetPhysicalDeviceXcbPresentationSupportKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_xlib_surface")
+	if (extName == "VK_KHR_xlib_surface")
 	{
 		functions.push_back("vkCreateXlibSurfaceKHR");
 		functions.push_back("vkGetPhysicalDeviceXlibPresentationSupportKHR");
+		return;
 	}
-	else if (extName == "VK_EXT_acquire_xlib_display")
+	if (extName == "VK_EXT_acquire_xlib_display")
 	{
 		functions.push_back("vkAcquireXlibDisplayEXT");
 		functions.push_back("vkGetRandROutputDisplayEXT");
+		return;
 	}
-	else
-		DE_FATAL("Extension name not found");
+	DE_FATAL("Extension name not found");
 }
 
 void getDeviceExtensionFunctions (deUint32 apiVersion, ::std::string extName, ::std::vector<const char*>& functions)
 {
+	if (extName == "VK_KHR_surface")
+	{
+		return;
+	}
 	if (extName == "VK_KHR_swapchain")
 	{
 		functions.push_back("vkCreateSwapchainKHR");
@@ -194,12 +862,30 @@
 		if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
 		if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
 		if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_display_swapchain")
+	if (extName == "VK_KHR_display")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_display_swapchain")
 	{
 		functions.push_back("vkCreateSharedSwapchainsKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_device_group")
+	if (extName == "VK_KHR_sampler_mirror_clamp_to_edge")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_multiview")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_physical_device_properties2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_device_group")
 	{
 		functions.push_back("vkGetDeviceGroupPeerMemoryFeaturesKHR");
 		functions.push_back("vkCmdSetDeviceMaskKHR");
@@ -207,105 +893,292 @@
 		if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
 		if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
 		if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_maintenance1")
+	if (extName == "VK_KHR_shader_draw_parameters")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_maintenance1")
 	{
 		functions.push_back("vkTrimCommandPoolKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_memory_fd")
+	if (extName == "VK_KHR_device_group_creation")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_memory_capabilities")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_memory")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_memory_fd")
 	{
 		functions.push_back("vkGetMemoryFdKHR");
 		functions.push_back("vkGetMemoryFdPropertiesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_semaphore_fd")
+	if (extName == "VK_KHR_external_semaphore_capabilities")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_semaphore")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_semaphore_fd")
 	{
 		functions.push_back("vkImportSemaphoreFdKHR");
 		functions.push_back("vkGetSemaphoreFdKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_push_descriptor")
+	if (extName == "VK_KHR_push_descriptor")
 	{
 		functions.push_back("vkCmdPushDescriptorSetKHR");
 		functions.push_back("vkCmdPushDescriptorSetWithTemplateKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_descriptor_update_template")
+	if (extName == "VK_KHR_shader_float16_int8")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_16bit_storage")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_incremental_present")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_descriptor_update_template")
 	{
 		functions.push_back("vkCreateDescriptorUpdateTemplateKHR");
 		functions.push_back("vkDestroyDescriptorUpdateTemplateKHR");
 		functions.push_back("vkUpdateDescriptorSetWithTemplateKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_create_renderpass2")
+	if (extName == "VK_KHR_imageless_framebuffer")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_create_renderpass2")
 	{
 		functions.push_back("vkCreateRenderPass2KHR");
 		functions.push_back("vkCmdBeginRenderPass2KHR");
 		functions.push_back("vkCmdNextSubpass2KHR");
 		functions.push_back("vkCmdEndRenderPass2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_shared_presentable_image")
+	if (extName == "VK_KHR_shared_presentable_image")
 	{
 		functions.push_back("vkGetSwapchainStatusKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_fence_fd")
+	if (extName == "VK_KHR_external_fence_capabilities")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_fence")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_fence_fd")
 	{
 		functions.push_back("vkImportFenceFdKHR");
 		functions.push_back("vkGetFenceFdKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_performance_query")
+	if (extName == "VK_KHR_performance_query")
 	{
 		functions.push_back("vkAcquireProfilingLockKHR");
 		functions.push_back("vkReleaseProfilingLockKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_get_memory_requirements2")
+	if (extName == "VK_KHR_maintenance2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_surface_capabilities2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_variable_pointers")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_display_properties2")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_dedicated_allocation")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_storage_buffer_storage_class")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_relaxed_block_layout")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_get_memory_requirements2")
 	{
 		functions.push_back("vkGetImageMemoryRequirements2KHR");
 		functions.push_back("vkGetBufferMemoryRequirements2KHR");
 		functions.push_back("vkGetImageSparseMemoryRequirements2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_sampler_ycbcr_conversion")
+	if (extName == "VK_KHR_image_format_list")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_sampler_ycbcr_conversion")
 	{
 		functions.push_back("vkCreateSamplerYcbcrConversionKHR");
 		functions.push_back("vkDestroySamplerYcbcrConversionKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_bind_memory2")
+	if (extName == "VK_KHR_bind_memory2")
 	{
 		functions.push_back("vkBindBufferMemory2KHR");
 		functions.push_back("vkBindImageMemory2KHR");
+		return;
 	}
-	else if (extName == "VK_KHR_maintenance3")
+	if (extName == "VK_KHR_maintenance3")
 	{
 		functions.push_back("vkGetDescriptorSetLayoutSupportKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_draw_indirect_count")
+	if (extName == "VK_KHR_draw_indirect_count")
 	{
 		functions.push_back("vkCmdDrawIndirectCountKHR");
 		functions.push_back("vkCmdDrawIndexedIndirectCountKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_timeline_semaphore")
+	if (extName == "VK_KHR_shader_subgroup_extended_types")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_8bit_storage")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_atomic_int64")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_clock")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_driver_properties")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_shader_float_controls")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_depth_stencil_resolve")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_swapchain_mutable_format")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_timeline_semaphore")
 	{
 		functions.push_back("vkGetSemaphoreCounterValueKHR");
 		functions.push_back("vkWaitSemaphoresKHR");
 		functions.push_back("vkSignalSemaphoreKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_buffer_device_address")
+	if (extName == "VK_KHR_vulkan_memory_model")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_spirv_1_4")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_surface_protected_capabilities")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_separate_depth_stencil_layouts")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_uniform_buffer_standard_layout")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_buffer_device_address")
 	{
 		functions.push_back("vkGetBufferDeviceAddressKHR");
 		functions.push_back("vkGetBufferOpaqueCaptureAddressKHR");
 		functions.push_back("vkGetDeviceMemoryOpaqueCaptureAddressKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_pipeline_executable_properties")
+	if (extName == "VK_KHR_pipeline_executable_properties")
 	{
 		functions.push_back("vkGetPipelineExecutablePropertiesKHR");
 		functions.push_back("vkGetPipelineExecutableStatisticsKHR");
 		functions.push_back("vkGetPipelineExecutableInternalRepresentationsKHR");
+		return;
 	}
-	else if (extName == "VK_EXT_debug_marker")
+	if (extName == "VK_EXT_debug_report")
+	{
+		return;
+	}
+	if (extName == "VK_NV_glsl_shader")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_depth_range_unrestricted")
+	{
+		return;
+	}
+	if (extName == "VK_IMG_filter_cubic")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_rasterization_order")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_trinary_minmax")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_explicit_vertex_parameter")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_debug_marker")
 	{
 		functions.push_back("vkDebugMarkerSetObjectTagEXT");
 		functions.push_back("vkDebugMarkerSetObjectNameEXT");
 		functions.push_back("vkCmdDebugMarkerBeginEXT");
 		functions.push_back("vkCmdDebugMarkerEndEXT");
 		functions.push_back("vkCmdDebugMarkerInsertEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_transform_feedback")
+	if (extName == "VK_AMD_gcn_shader")
+	{
+		return;
+	}
+	if (extName == "VK_NV_dedicated_allocation")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_transform_feedback")
 	{
 		functions.push_back("vkCmdBindTransformFeedbackBuffersEXT");
 		functions.push_back("vkCmdBeginTransformFeedbackEXT");
@@ -313,26 +1186,87 @@
 		functions.push_back("vkCmdBeginQueryIndexedEXT");
 		functions.push_back("vkCmdEndQueryIndexedEXT");
 		functions.push_back("vkCmdDrawIndirectByteCountEXT");
+		return;
 	}
-	else if (extName == "VK_NVX_image_view_handle")
+	if (extName == "VK_NVX_image_view_handle")
 	{
 		functions.push_back("vkGetImageViewHandleNVX");
+		return;
 	}
-	else if (extName == "VK_AMD_draw_indirect_count")
+	if (extName == "VK_AMD_draw_indirect_count")
 	{
 		functions.push_back("vkCmdDrawIndirectCountAMD");
 		functions.push_back("vkCmdDrawIndexedIndirectCountAMD");
+		return;
 	}
-	else if (extName == "VK_AMD_shader_info")
+	if (extName == "VK_AMD_negative_viewport_height")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_gpu_shader_half_float")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_ballot")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_texture_gather_bias_lod")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_info")
 	{
 		functions.push_back("vkGetShaderInfoAMD");
+		return;
 	}
-	else if (extName == "VK_EXT_conditional_rendering")
+	if (extName == "VK_AMD_shader_image_load_store_lod")
+	{
+		return;
+	}
+	if (extName == "VK_NV_corner_sampled_image")
+	{
+		return;
+	}
+	if (extName == "VK_IMG_format_pvrtc")
+	{
+		return;
+	}
+	if (extName == "VK_NV_external_memory_capabilities")
+	{
+		return;
+	}
+	if (extName == "VK_NV_external_memory")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_validation_flags")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_subgroup_ballot")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_subgroup_vote")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_texture_compression_astc_hdr")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_astc_decode_mode")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_conditional_rendering")
 	{
 		functions.push_back("vkCmdBeginConditionalRenderingEXT");
 		functions.push_back("vkCmdEndConditionalRenderingEXT");
+		return;
 	}
-	else if (extName == "VK_NVX_device_generated_commands")
+	if (extName == "VK_NVX_device_generated_commands")
 	{
 		functions.push_back("vkCmdProcessCommandsNVX");
 		functions.push_back("vkCmdReserveSpaceForCommandsNVX");
@@ -342,32 +1276,86 @@
 		functions.push_back("vkDestroyObjectTableNVX");
 		functions.push_back("vkRegisterObjectsNVX");
 		functions.push_back("vkUnregisterObjectsNVX");
+		return;
 	}
-	else if (extName == "VK_NV_clip_space_w_scaling")
+	if (extName == "VK_NV_clip_space_w_scaling")
 	{
 		functions.push_back("vkCmdSetViewportWScalingNV");
+		return;
 	}
-	else if (extName == "VK_EXT_display_control")
+	if (extName == "VK_EXT_direct_mode_display")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_display_surface_counter")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_display_control")
 	{
 		functions.push_back("vkDisplayPowerControlEXT");
 		functions.push_back("vkRegisterDeviceEventEXT");
 		functions.push_back("vkRegisterDisplayEventEXT");
 		functions.push_back("vkGetSwapchainCounterEXT");
+		return;
 	}
-	else if (extName == "VK_GOOGLE_display_timing")
+	if (extName == "VK_GOOGLE_display_timing")
 	{
 		functions.push_back("vkGetRefreshCycleDurationGOOGLE");
 		functions.push_back("vkGetPastPresentationTimingGOOGLE");
+		return;
 	}
-	else if (extName == "VK_EXT_discard_rectangles")
+	if (extName == "VK_NV_sample_mask_override_coverage")
+	{
+		return;
+	}
+	if (extName == "VK_NV_geometry_shader_passthrough")
+	{
+		return;
+	}
+	if (extName == "VK_NV_viewport_array2")
+	{
+		return;
+	}
+	if (extName == "VK_NVX_multiview_per_view_attributes")
+	{
+		return;
+	}
+	if (extName == "VK_NV_viewport_swizzle")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_discard_rectangles")
 	{
 		functions.push_back("vkCmdSetDiscardRectangleEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_hdr_metadata")
+	if (extName == "VK_EXT_conservative_rasterization")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_depth_clip_enable")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_swapchain_colorspace")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_hdr_metadata")
 	{
 		functions.push_back("vkSetHdrMetadataEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_debug_utils")
+	if (extName == "VK_EXT_external_memory_dma_buf")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_queue_family_foreign")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_debug_utils")
 	{
 		functions.push_back("vkSetDebugUtilsObjectNameEXT");
 		functions.push_back("vkSetDebugUtilsObjectTagEXT");
@@ -377,29 +1365,90 @@
 		functions.push_back("vkCmdBeginDebugUtilsLabelEXT");
 		functions.push_back("vkCmdEndDebugUtilsLabelEXT");
 		functions.push_back("vkCmdInsertDebugUtilsLabelEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_sample_locations")
+	if (extName == "VK_EXT_sampler_filter_minmax")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_gpu_shader_int16")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_mixed_attachment_samples")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_fragment_mask")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_inline_uniform_block")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_stencil_export")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_sample_locations")
 	{
 		functions.push_back("vkCmdSetSampleLocationsEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_image_drm_format_modifier")
+	if (extName == "VK_EXT_blend_operation_advanced")
+	{
+		return;
+	}
+	if (extName == "VK_NV_fragment_coverage_to_color")
+	{
+		return;
+	}
+	if (extName == "VK_NV_framebuffer_mixed_samples")
+	{
+		return;
+	}
+	if (extName == "VK_NV_fill_rectangle")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shader_sm_builtins")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_post_depth_coverage")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_image_drm_format_modifier")
 	{
 		functions.push_back("vkGetImageDrmFormatModifierPropertiesEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_validation_cache")
+	if (extName == "VK_EXT_validation_cache")
 	{
 		functions.push_back("vkCreateValidationCacheEXT");
 		functions.push_back("vkDestroyValidationCacheEXT");
 		functions.push_back("vkMergeValidationCachesEXT");
 		functions.push_back("vkGetValidationCacheDataEXT");
+		return;
 	}
-	else if (extName == "VK_NV_shading_rate_image")
+	if (extName == "VK_EXT_descriptor_indexing")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_viewport_index_layer")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shading_rate_image")
 	{
 		functions.push_back("vkCmdBindShadingRateImageNV");
 		functions.push_back("vkCmdSetViewportShadingRatePaletteNV");
 		functions.push_back("vkCmdSetCoarseSampleOrderNV");
+		return;
 	}
-	else if (extName == "VK_NV_ray_tracing")
+	if (extName == "VK_NV_ray_tracing")
 	{
 		functions.push_back("vkCreateAccelerationStructureNV");
 		functions.push_back("vkDestroyAccelerationStructureNV");
@@ -413,35 +1462,94 @@
 		functions.push_back("vkGetAccelerationStructureHandleNV");
 		functions.push_back("vkCmdWriteAccelerationStructuresPropertiesNV");
 		functions.push_back("vkCompileDeferredNV");
+		return;
 	}
-	else if (extName == "VK_EXT_external_memory_host")
+	if (extName == "VK_NV_representative_fragment_test")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_filter_cubic")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_global_priority")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_external_memory_host")
 	{
 		functions.push_back("vkGetMemoryHostPointerPropertiesEXT");
+		return;
 	}
-	else if (extName == "VK_AMD_buffer_marker")
+	if (extName == "VK_AMD_buffer_marker")
 	{
 		functions.push_back("vkCmdWriteBufferMarkerAMD");
+		return;
 	}
-	else if (extName == "VK_EXT_calibrated_timestamps")
+	if (extName == "VK_AMD_pipeline_compiler_control")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_calibrated_timestamps")
 	{
 		functions.push_back("vkGetCalibratedTimestampsEXT");
+		return;
 	}
-	else if (extName == "VK_NV_mesh_shader")
+	if (extName == "VK_AMD_shader_core_properties")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_memory_overallocation_behavior")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_vertex_attribute_divisor")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_pipeline_creation_feedback")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shader_subgroup_partitioned")
+	{
+		return;
+	}
+	if (extName == "VK_NV_compute_shader_derivatives")
+	{
+		return;
+	}
+	if (extName == "VK_NV_mesh_shader")
 	{
 		functions.push_back("vkCmdDrawMeshTasksNV");
 		functions.push_back("vkCmdDrawMeshTasksIndirectNV");
 		functions.push_back("vkCmdDrawMeshTasksIndirectCountNV");
+		return;
 	}
-	else if (extName == "VK_NV_scissor_exclusive")
+	if (extName == "VK_NV_fragment_shader_barycentric")
+	{
+		return;
+	}
+	if (extName == "VK_NV_shader_image_footprint")
+	{
+		return;
+	}
+	if (extName == "VK_NV_scissor_exclusive")
 	{
 		functions.push_back("vkCmdSetExclusiveScissorNV");
+		return;
 	}
-	else if (extName == "VK_NV_device_diagnostic_checkpoints")
+	if (extName == "VK_NV_device_diagnostic_checkpoints")
 	{
 		functions.push_back("vkCmdSetCheckpointNV");
 		functions.push_back("vkGetQueueCheckpointDataNV");
+		return;
 	}
-	else if (extName == "VK_INTEL_performance_query")
+	if (extName == "VK_INTEL_shader_integer_functions2")
+	{
+		return;
+	}
+	if (extName == "VK_INTEL_performance_query")
 	{
 		functions.push_back("vkInitializePerformanceApiINTEL");
 		functions.push_back("vkUninitializePerformanceApiINTEL");
@@ -452,55 +1560,217 @@
 		functions.push_back("vkReleasePerformanceConfigurationINTEL");
 		functions.push_back("vkQueueSetPerformanceConfigurationINTEL");
 		functions.push_back("vkGetPerformanceParameterINTEL");
+		return;
 	}
-	else if (extName == "VK_AMD_display_native_hdr")
+	if (extName == "VK_EXT_pci_bus_info")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_display_native_hdr")
 	{
 		functions.push_back("vkSetLocalDimmingAMD");
+		return;
 	}
-	else if (extName == "VK_EXT_buffer_device_address")
+	if (extName == "VK_EXT_fragment_density_map")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_scalar_block_layout")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_hlsl_functionality1")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_decorate_string")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_subgroup_size_control")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_shader_core_properties2")
+	{
+		return;
+	}
+	if (extName == "VK_AMD_device_coherent_memory")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_memory_budget")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_memory_priority")
+	{
+		return;
+	}
+	if (extName == "VK_NV_dedicated_allocation_image_aliasing")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_buffer_device_address")
 	{
 		functions.push_back("vkGetBufferDeviceAddressEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_line_rasterization")
+	if (extName == "VK_EXT_tooling_info")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_separate_stencil_usage")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_validation_features")
+	{
+		return;
+	}
+	if (extName == "VK_NV_cooperative_matrix")
+	{
+		return;
+	}
+	if (extName == "VK_NV_coverage_reduction_mode")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_fragment_shader_interlock")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_ycbcr_image_arrays")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_headless_surface")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_line_rasterization")
 	{
 		functions.push_back("vkCmdSetLineStippleEXT");
+		return;
 	}
-	else if (extName == "VK_EXT_host_query_reset")
+	if (extName == "VK_EXT_host_query_reset")
 	{
 		functions.push_back("vkResetQueryPoolEXT");
+		return;
 	}
-	else if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
+	if (extName == "VK_EXT_index_type_uint8")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_shader_demote_to_helper_invocation")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_texel_buffer_alignment")
+	{
+		return;
+	}
+	if (extName == "VK_GOOGLE_user_type")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_android_surface")
+	{
+		return;
+	}
+	if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
 	{
 		functions.push_back("vkGetAndroidHardwareBufferPropertiesANDROID");
 		functions.push_back("vkGetMemoryAndroidHardwareBufferANDROID");
+		return;
 	}
-	else if (extName == "VK_KHR_external_memory_win32")
+	if (extName == "VK_FUCHSIA_imagepipe_surface")
+	{
+		return;
+	}
+	if (extName == "VK_GGP_stream_descriptor_surface")
+	{
+		return;
+	}
+	if (extName == "VK_GGP_frame_token")
+	{
+		return;
+	}
+	if (extName == "VK_MVK_ios_surface")
+	{
+		return;
+	}
+	if (extName == "VK_MVK_macos_surface")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_metal_surface")
+	{
+		return;
+	}
+	if (extName == "VK_NN_vi_surface")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_wayland_surface")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_win32_surface")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_memory_win32")
 	{
 		functions.push_back("vkGetMemoryWin32HandleKHR");
 		functions.push_back("vkGetMemoryWin32HandlePropertiesKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_semaphore_win32")
+	if (extName == "VK_KHR_win32_keyed_mutex")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_external_semaphore_win32")
 	{
 		functions.push_back("vkImportSemaphoreWin32HandleKHR");
 		functions.push_back("vkGetSemaphoreWin32HandleKHR");
+		return;
 	}
-	else if (extName == "VK_KHR_external_fence_win32")
+	if (extName == "VK_KHR_external_fence_win32")
 	{
 		functions.push_back("vkImportFenceWin32HandleKHR");
 		functions.push_back("vkGetFenceWin32HandleKHR");
+		return;
 	}
-	else if (extName == "VK_NV_external_memory_win32")
+	if (extName == "VK_NV_external_memory_win32")
 	{
 		functions.push_back("vkGetMemoryWin32HandleNV");
+		return;
 	}
-	else if (extName == "VK_EXT_full_screen_exclusive")
+	if (extName == "VK_NV_win32_keyed_mutex")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_full_screen_exclusive")
 	{
 		functions.push_back("vkAcquireFullScreenExclusiveModeEXT");
 		functions.push_back("vkReleaseFullScreenExclusiveModeEXT");
 		functions.push_back("vkGetDeviceGroupSurfacePresentModes2EXT");
+		return;
 	}
-	else
-		DE_FATAL("Extension name not found");
+	if (extName == "VK_KHR_xcb_surface")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_xlib_surface")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_acquire_xlib_display")
+	{
+		return;
+	}
+	DE_FATAL("Extension name not found");
 }
 
 ::std::string instanceExtensionNames[] =
diff --git a/external/vulkancts/framework/vulkan/vkVulkan_c.inl b/external/vulkancts/framework/vulkan/vkVulkan_c.inl
index 3c44775..2374f35 100644
--- a/external/vulkancts/framework/vulkan/vkVulkan_c.inl
+++ b/external/vulkancts/framework/vulkan/vkVulkan_c.inl
@@ -5,7 +5,7 @@
 #define VULKAN_CORE_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -47,7 +47,7 @@
 #define VK_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3ff)
 #define VK_VERSION_PATCH(version) ((deUint32)(version) & 0xfff)
 // Version of this file
-#define VK_HEADER_VERSION 130
+#define VK_HEADER_VERSION 132
 
 
 #define VK_NULL_HANDLE 0
diff --git a/external/vulkancts/modules/vulkan/api/vktApiBufferMarkerTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiBufferMarkerTests.cpp
index 84c77d5..69d6466 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiBufferMarkerTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiBufferMarkerTests.cpp
@@ -414,7 +414,6 @@
 
 void computeMemoryDepBarrier(MemoryDepMethod			method,
 							 MemoryDepOwner				owner,
-							 VkPipelineStageFlagBits	markerStage,
 							 VkAccessFlags*				memoryDepAccess,
 							 VkPipelineStageFlags*		executionScope)
 {
@@ -423,7 +422,7 @@
 	if (owner == MEMORY_DEP_OWNER_MARKER)
 	{
 		*memoryDepAccess = VK_ACCESS_TRANSFER_WRITE_BIT;
-		*executionScope  = markerStage;
+		*executionScope  = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
 	}
 	else
 	{
@@ -877,8 +876,8 @@
 			VkPipelineStageFlags srcStageMask;
 			VkPipelineStageFlags dstStageMask;
 
-			computeMemoryDepBarrier(params.method, oldOwner, params.base.stage, &memoryDep.srcAccessMask, &srcStageMask);
-			computeMemoryDepBarrier(params.method, newOwner, params.base.stage, &memoryDep.dstAccessMask, &dstStageMask);
+			computeMemoryDepBarrier(params.method, oldOwner, &memoryDep.srcAccessMask, &srcStageMask);
+			computeMemoryDepBarrier(params.method, newOwner, &memoryDep.dstAccessMask, &dstStageMask);
 
 			vk.cmdPipelineBarrier(*cmdBuffer, srcStageMask, dstStageMask, 0, 0, DE_NULL, 1, &memoryDep, 0, DE_NULL);
 		}
diff --git a/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp
index af1a4d6..a64577c 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp
@@ -31,6 +31,7 @@
 #include "vkQueryUtil.hpp"
 #include "vkRefUtil.hpp"
 #include "vktTestCase.hpp"
+#include "vktTestCaseUtil.hpp"
 #include "tcuPlatform.hpp"
 
 #include <algorithm>
@@ -656,6 +657,49 @@
 	}
 }
 
+tcu::TestStatus testOverlyLargeBuffer(Context& context, deUint64 bufferSize)
+{
+	const DeviceInterface&	vk					= context.getDeviceInterface();
+	const VkDevice			vkDevice			= context.getDevice();
+	const deUint32			queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
+	VkBuffer				rawBuffer			= DE_NULL;
+
+	VkBufferCreateInfo bufferParams =
+	{
+		VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,	// VkStructureType			sType;
+		DE_NULL,								// const void*				pNext;
+		0u,										// VkBufferCreateFlags		flags;
+		bufferSize,								// VkDeviceSize				size;
+		VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,		// VkBufferUsageFlags		usage;
+		VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,										// uint32_t					queueFamilyIndexCount;
+		&queueFamilyIndex,						// const uint32_t*			pQueueFamilyIndices;
+	};
+
+	VkResult result = vk.createBuffer(vkDevice, &bufferParams, (vk::VkAllocationCallbacks*)DE_NULL, &rawBuffer);
+
+	// if buffer creation succeeds verify that the correct amount of memory was bound to it
+	if (result == VK_SUCCESS)
+	{
+		VkMemoryRequirements memoryRequirements;
+		vk.getBufferMemoryRequirements(vkDevice, rawBuffer, &memoryRequirements);
+		vk.destroyBuffer(vkDevice, rawBuffer, DE_NULL);
+
+		if (memoryRequirements.size >= bufferSize)
+			return tcu::TestStatus::pass("Pass");
+		return tcu::TestStatus::fail("Fail");
+	}
+
+	vk.destroyBuffer(vkDevice, rawBuffer, DE_NULL);
+
+	// check if one of the allowed errors was returned
+	if ((result == VK_ERROR_OUT_OF_DEVICE_MEMORY) ||
+		(result == VK_ERROR_OUT_OF_HOST_MEMORY))
+		return tcu::TestStatus::pass("Pass");
+
+	return tcu::TestStatus::fail("Fail");
+}
+
 } // anonymous
 
  tcu::TestCaseGroup* createBufferTests (tcu::TestContext& testCtx)
@@ -674,6 +718,12 @@
 		buffersTests->addChild(dedicatedAllocation.release());
 	}
 
+	{
+		de::MovePtr<tcu::TestCaseGroup> basicTests(new tcu::TestCaseGroup(testCtx, "basic", "Basic buffer tests."));
+		addFunctionCase(basicTests.get(), "size_max_uint64", "Creating a ULLONG_MAX buffer and verify that it either succeeds or returns one of the allowed errors.", testOverlyLargeBuffer, std::numeric_limits<deUint64>::max());
+		buffersTests->addChild(basicTests.release());
+	}
+
 	return buffersTests.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
index 766c303..816972f 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
@@ -1614,6 +1614,7 @@
 								CopyBufferToImage			(Context&	context,
 															 TestParams	testParams);
 	virtual tcu::TestStatus		iterate						(void);
+
 private:
 	virtual void				copyRegionToTextureLevel	(tcu::ConstPixelBufferAccess src, tcu::PixelBufferAccess dst, CopyRegion region, deUint32 mipLevel = 0u);
 
@@ -1974,7 +1975,7 @@
 	VkDeviceSize					stencilOffset	= 0;
 
 	// To be able to test ordering depth & stencil differently
-	// We take the given copy regions and use that as the desired order
+	// we take the given copy regions and use that as the desired order
 	// and copy the appropriate data into place and compute the appropriate
 	// data offsets to be used in the copy command.
 	for (deUint32 i = 0; i < m_params.regions.size(); i++)
@@ -1986,39 +1987,38 @@
 
 		if (copyData.imageSubresource.aspectMask == VK_IMAGE_ASPECT_DEPTH_BIT && !depthLoaded)
 		{
-			if (!depthLoaded)
-			{
-				// Create level that is same component as depth buffer (e.g. D16, D24, D32F)
-				tcu::TextureLevel	depthTexture(mapCombinedToDepthTransferFormat(bufferAccess.getFormat()), bufferAccess.getWidth(), bufferAccess.getHeight(), bufferAccess.getDepth());
-				bufferSize *= tcu::getPixelSize(depthTexture.getFormat());
-				// Copy depth component only from source data. This gives us packed depth-only data.
-				tcu::copy(depthTexture.getAccess(), tcu::getEffectiveDepthStencilAccess(bufferAccess, tcu::Sampler::MODE_DEPTH));
-				srcPtr = (char*)depthTexture.getAccess().getDataPtr();
-				// Copy packed depth-only data to output buffer
-				deMemcpy(dstPtr, srcPtr, bufferSize);
-				depthLoaded = DE_TRUE;
-				depthOffset = bufferOffset;
-				dstPtr += bufferSize;
-				bufferOffset += bufferSize;
-			}
+			// Create level that is same component as depth buffer (e.g. D16, D24, D32F)
+			tcu::TextureLevel	depthTexture(mapCombinedToDepthTransferFormat(bufferAccess.getFormat()), bufferAccess.getWidth(), bufferAccess.getHeight(), bufferAccess.getDepth());
+			bufferSize *= tcu::getPixelSize(depthTexture.getFormat());
+			// Copy depth component only from source data. This gives us packed depth-only data.
+			tcu::copy(depthTexture.getAccess(), tcu::getEffectiveDepthStencilAccess(bufferAccess, tcu::Sampler::MODE_DEPTH));
+			srcPtr = (char*)depthTexture.getAccess().getDataPtr();
+			// Copy packed depth-only data to output buffer
+			deMemcpy(dstPtr, srcPtr, bufferSize);
+			depthLoaded = DE_TRUE;
+			depthOffset = bufferOffset;
+			dstPtr += bufferSize;
+			bufferOffset += bufferSize;
 			copyData.bufferOffset += depthOffset;
 		}
 		else if (!stencilLoaded)
 		{
-			if (!stencilLoaded)
-			{
-				// Create level that is same component as stencil buffer (always 8-bits)
-				tcu::TextureLevel	stencilTexture(tcu::getEffectiveDepthStencilTextureFormat(bufferAccess.getFormat(), tcu::Sampler::MODE_STENCIL), bufferAccess.getWidth(), bufferAccess.getHeight(), bufferAccess.getDepth());
-				// Copy stencil component only from source data. This gives us packed stencil-only data.
-				tcu::copy(stencilTexture.getAccess(), tcu::getEffectiveDepthStencilAccess(bufferAccess, tcu::Sampler::MODE_STENCIL));
-				srcPtr = (char*)stencilTexture.getAccess().getDataPtr();
-				// Copy packed stencil-only data to output buffer
-				deMemcpy(dstPtr, srcPtr, bufferSize);
-				stencilLoaded = DE_TRUE;
-				stencilOffset = bufferOffset;
-				dstPtr += bufferSize;
-				bufferOffset += bufferSize;
-			}
+			// Create level that is same component as stencil buffer (always 8-bits)
+			tcu::TextureLevel	stencilTexture(tcu::getEffectiveDepthStencilTextureFormat(bufferAccess.getFormat(), tcu::Sampler::MODE_STENCIL), bufferAccess.getWidth(), bufferAccess.getHeight(), bufferAccess.getDepth());
+			// Copy stencil component only from source data. This gives us packed stencil-only data.
+			tcu::copy(stencilTexture.getAccess(), tcu::getEffectiveDepthStencilAccess(bufferAccess, tcu::Sampler::MODE_STENCIL));
+			srcPtr = (char*)stencilTexture.getAccess().getDataPtr();
+			// Copy packed stencil-only data to output buffer
+			deMemcpy(dstPtr, srcPtr, bufferSize);
+			stencilLoaded = DE_TRUE;
+			stencilOffset = bufferOffset;
+			dstPtr += bufferSize;
+			bufferOffset += bufferSize;
+
+			// Reference image generation uses pixel offsets based on buffer offset.
+			// We need to adjust the offset now that the stencil data is not interleaved.
+			copyData.bufferOffset /= tcu::getPixelSize(m_textureFormat);
+
 			copyData.bufferOffset += stencilOffset;
 		}
 
@@ -5996,8 +5996,8 @@
 
 	const struct
 	{
-		const char* name;
-		const VkFormat							format;
+		const char*		name;
+		const VkFormat	format;
 	} depthAndStencilFormats[] =
 	{
 		{ "d16_unorm",				VK_FORMAT_D16_UNORM				},
@@ -6008,15 +6008,15 @@
 		{ "d32_sfloat_s8_uint",		VK_FORMAT_D32_SFLOAT_S8_UINT	}
 	};
 
-	const VkImageSubresourceLayers	depthSourceLayer =
+	const VkImageSubresourceLayers	depthSourceLayer		=
 	{
-		VK_IMAGE_ASPECT_DEPTH_BIT,		// VkImageAspectFlags	aspectMask;
+		VK_IMAGE_ASPECT_DEPTH_BIT,	// VkImageAspectFlags	aspectMask;
 		0u,							// deUint32				mipLevel;
 		0u,							// deUint32				baseArrayLayer;
 		1u,							// deUint32				layerCount;
 	};
 
-	const VkBufferImageCopy	bufferDepthCopy =
+	const VkBufferImageCopy			bufferDepthCopy			=
 	{
 		0u,											// VkDeviceSize				bufferOffset;
 		0u,											// deUint32					bufferRowLength;
@@ -6025,29 +6025,46 @@
 		{0, 0, 0},									// VkOffset3D				imageOffset;
 		defaultExtent								// VkExtent3D				imageExtent;
 	};
-	CopyRegion	copyDepthRegion;
-	copyDepthRegion.bufferImageCopy = bufferDepthCopy;
 
-	const VkImageSubresourceLayers	stencilSourceLayer =
+	const VkBufferImageCopy			bufferDepthCopyOffset	=
 	{
-		VK_IMAGE_ASPECT_STENCIL_BIT,		// VkImageAspectFlags	aspectMask;
-		0u,							// deUint32				mipLevel;
-		0u,							// deUint32				baseArrayLayer;
-		1u,							// deUint32				layerCount;
+		32,											// VkDeviceSize				bufferOffset;
+		defaultHalfSize + defaultFourthSize,		// deUint32					bufferRowLength;
+		defaultHalfSize + defaultFourthSize,		// deUint32					bufferImageHeight;
+		depthSourceLayer,							// VkImageSubresourceLayers	imageSubresource;
+		{defaultFourthSize, defaultFourthSize, 0},	// VkOffset3D				imageOffset;
+		defaultHalfExtent							// VkExtent3D				imageExtent;
 	};
 
-	const VkBufferImageCopy	bufferStencilCopy =
+	const VkImageSubresourceLayers	stencilSourceLayer		=
 	{
-		0u,											// VkDeviceSize				bufferOffset;
-		0u,											// deUint32					bufferRowLength;
-		0u,											// deUint32					bufferImageHeight;
+		VK_IMAGE_ASPECT_STENCIL_BIT,	// VkImageAspectFlags	aspectMask;
+		0u,								// deUint32				mipLevel;
+		0u,								// deUint32				baseArrayLayer;
+		1u,								// deUint32				layerCount;
+	};
+
+	const VkBufferImageCopy			bufferStencilCopy		=
+	{
+		0u,					// VkDeviceSize				bufferOffset;
+		0u,					// deUint32					bufferRowLength;
+		0u,					// deUint32					bufferImageHeight;
+		stencilSourceLayer,	// VkImageSubresourceLayers	imageSubresource;
+		{0, 0, 0},			// VkOffset3D				imageOffset;
+		defaultExtent		// VkExtent3D				imageExtent;
+	};
+
+    const VkBufferImageCopy			bufferStencilCopyOffset	=
+	{
+		32,											// VkDeviceSize				bufferOffset;
+		defaultHalfSize + defaultFourthSize,		// deUint32					bufferRowLength;
+		defaultHalfSize + defaultFourthSize,		// deUint32					bufferImageHeight;
 		stencilSourceLayer,							// VkImageSubresourceLayers	imageSubresource;
-		{0, 0, 0},									// VkOffset3D				imageOffset;
-		defaultExtent								// VkExtent3D				imageExtent;
+		{defaultFourthSize, defaultFourthSize, 0},	// VkOffset3D				imageOffset;
+		defaultHalfExtent							// VkExtent3D				imageExtent;
 	};
 
-	CopyRegion	copyStencilRegion;
-	copyStencilRegion.bufferImageCopy = bufferStencilCopy;
+    const bool						useOffset[]				= {false, true};
 
 	// Note: Depth stencil tests I want to do
 	// Formats: D16, D24S8, D32FS8
@@ -6057,65 +6074,79 @@
 	// whole surface, subimages?
 	// Similar tests as BufferToImage?
 	for (const auto config : depthAndStencilFormats)
-	{
-		// TODO: Check that this format is supported before creating tests?
-		//if (isSupportedDepthStencilFormat(vki, physDevice, VK_FORMAT_D24_UNORM_S8_UINT))
-
-		const tcu::TextureFormat format = mapVkFormat(config.format);
-		const bool hasDepth = tcu::hasDepthComponent(format.order);
-		const bool hasStencil = tcu::hasStencilComponent(format.order);
-		std::string description = config.name;
-
-		TestParams	params;
-		params.src.buffer.size = defaultSize * defaultSize;
-		params.dst.image.imageType = VK_IMAGE_TYPE_2D;
-		params.dst.image.format = config.format;
-		params.dst.image.extent = defaultExtent;
-		params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
-		params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
-		params.allocationKind = allocationKind;
-
-		if (hasDepth && hasStencil)
+		for (const auto offset : useOffset)
 		{
-			params.singleCommand = DE_TRUE;
+			// TODO: Check that this format is supported before creating tests?
+			//if (isSupportedDepthStencilFormat(vki, physDevice, VK_FORMAT_D24_UNORM_S8_UINT))
 
-			params.regions.push_back(copyDepthRegion);
-			params.regions.push_back(copyStencilRegion);
+			CopyRegion					copyDepthRegion;
+			CopyRegion					copyStencilRegion;
+			TestParams					params;
+			const tcu::TextureFormat	format		= mapVkFormat(config.format);
+			const bool					hasDepth	= tcu::hasDepthComponent(format.order);
+			const bool					hasStencil	= tcu::hasStencilComponent(format.order);
+			std::string					description	= config.name;
 
-			group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_DS", "Copy from depth&stencil to image", params));
+			if (offset)
+			{
+				copyDepthRegion.bufferImageCopy = bufferDepthCopyOffset;
+				copyStencilRegion.bufferImageCopy = bufferStencilCopyOffset;
+				description = "buffer_offset_" + description;
+				params.src.buffer.size = (defaultHalfSize - 1u) * defaultSize + defaultHalfSize + defaultFourthSize;
+			}
+			else
+			{
+				copyDepthRegion.bufferImageCopy = bufferDepthCopy;
+				copyStencilRegion.bufferImageCopy = bufferStencilCopy;
+				params.src.buffer.size = defaultSize * defaultSize;
+			}
 
-			params.singleCommand = DE_FALSE;
+			params.dst.image.imageType = VK_IMAGE_TYPE_2D;
+			params.dst.image.format = config.format;
+			params.dst.image.extent = defaultExtent;
+			params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
+			params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
+			params.allocationKind = allocationKind;
 
-			group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_D_S", "Copy from depth then stencil to image", params));
+			if (hasDepth && hasStencil)
+			{
+				params.singleCommand = DE_TRUE;
 
-			params.regions.clear();
-			params.regions.push_back(copyStencilRegion);
-			params.regions.push_back(copyDepthRegion);
+				params.regions.push_back(copyDepthRegion);
+				params.regions.push_back(copyStencilRegion);
 
-			group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_S_D", "Copy from depth then stencil to image", params));
+				group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_DS", "Copy from depth&stencil to image", params));
 
-			params.singleCommand = DE_TRUE;
-			group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_SD", "Copy from depth&stencil to image", params));
+				params.singleCommand = DE_FALSE;
 
+				group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_D_S", "Copy from depth then stencil to image", params));
+
+				params.regions.clear();
+				params.regions.push_back(copyStencilRegion);
+				params.regions.push_back(copyDepthRegion);
+
+				group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_S_D", "Copy from depth then stencil to image", params));
+
+				params.singleCommand = DE_TRUE;
+				group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_SD", "Copy from depth&stencil to image", params));
+			}
+
+			if (hasStencil)
+			{
+				params.regions.clear();
+				params.regions.push_back(copyStencilRegion);
+
+				group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_S", "Copy from stencil to image", params));
+			}
+
+			if (hasDepth)
+			{
+				params.regions.clear();
+				params.regions.push_back(copyDepthRegion);
+
+				group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_D", "Copy from depth to image", params));
+			}
 		}
-
-		if (hasStencil)
-		{
-			params.regions.clear();
-			params.regions.push_back(copyStencilRegion);
-
-			group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_S", "Copy from stencil to image", params));
-		}
-
-
-		if (hasDepth)
-		{
-			params.regions.clear();
-			params.regions.push_back(copyDepthRegion);
-
-			group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, description + "_D", "Copy from depth to image", params));
-		}
-	}
 }
 
 void addBufferToImageTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
index e95aecd..891c794 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
@@ -65,6 +65,8 @@
 
 static const VkConformanceVersionKHR knownConformanceVersions[] =
 {
+	makeConformanceVersion(1, 2, 2, 1),
+	makeConformanceVersion(1, 2, 2, 0),
 	makeConformanceVersion(1, 2, 1, 1),
 	makeConformanceVersion(1, 2, 1, 0),
 	makeConformanceVersion(1, 2, 0, 2),
@@ -85,14 +87,6 @@
 	makeConformanceVersion(1, 1, 3, 2),
 	makeConformanceVersion(1, 1, 3, 1),
 	makeConformanceVersion(1, 1, 3, 0),
-	makeConformanceVersion(1, 1, 2, 3),
-	makeConformanceVersion(1, 1, 2, 2),
-	makeConformanceVersion(1, 1, 2, 1),
-	makeConformanceVersion(1, 1, 2, 0),
-	makeConformanceVersion(1, 1, 1, 3),
-	makeConformanceVersion(1, 1, 1, 2),
-	makeConformanceVersion(1, 1, 1, 1),
-	makeConformanceVersion(1, 1, 1, 0),
 };
 
 DE_INLINE bool isNullTerminated(const char* str, const deUint32 maxSize)
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index db4523c..06c6d0e 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -2868,58 +2868,59 @@
 		CABL = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
 		STIM = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
 		STIA = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
-		DSAT = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
+		DSAT = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
+		TRSR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
+		TRDS = VK_FORMAT_FEATURE_TRANSFER_DST_BIT
 	};
 
 	static const Formatpair formatflags[] =
 	{
-		{ VK_FORMAT_B4G4R4A4_UNORM_PACK16,		SAIM | BLSR |               SIFL },
-		{ VK_FORMAT_R5G6B5_UNORM_PACK16,		SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_A1R5G5B5_UNORM_PACK16,		SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_R8_UNORM,					SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_R8_SNORM,					SAIM | BLSR |               SIFL },
-		{ VK_FORMAT_R8_UINT,					SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R8_SINT,					SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R8G8_UNORM,					SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_R8G8_SNORM,					SAIM | BLSR |               SIFL },
-		{ VK_FORMAT_R8G8_UINT,					SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R8G8_SINT,					SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R8G8B8A8_UNORM,				SAIM | BLSR | COAT | BLDS | SIFL | STIM | CABL },
-		{ VK_FORMAT_R8G8B8A8_SNORM,				SAIM | BLSR |               SIFL | STIM },
-		{ VK_FORMAT_R8G8B8A8_UINT,				SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R8G8B8A8_SINT,				SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R8G8B8A8_SRGB,				SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_B8G8R8A8_UNORM,				SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_B8G8R8A8_SRGB,				SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_A8B8G8R8_UNORM_PACK32,		SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_A8B8G8R8_SNORM_PACK32,		SAIM | BLSR |               SIFL },
-		{ VK_FORMAT_A8B8G8R8_UINT_PACK32,		SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_A8B8G8R8_SINT_PACK32,		SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_A8B8G8R8_SRGB_PACK32,		SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_A2B10G10R10_UNORM_PACK32,	SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_A2B10G10R10_UINT_PACK32,	SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R16_UINT,					SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R16_SINT,					SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R16_SFLOAT,					SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_R16G16_UINT,				SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R16G16_SINT,				SAIM | BLSR | COAT | BLDS },
-		{ VK_FORMAT_R16G16_SFLOAT,				SAIM | BLSR | COAT | BLDS | SIFL |        CABL },
-		{ VK_FORMAT_R16G16B16A16_UINT,			SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R16G16B16A16_SINT,			SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R16G16B16A16_SFLOAT,		SAIM | BLSR | COAT | BLDS | SIFL | STIM | CABL },
-		{ VK_FORMAT_R32_UINT,					SAIM | BLSR | COAT | BLDS |        STIM |        STIA },
-		{ VK_FORMAT_R32_SINT,					SAIM | BLSR | COAT | BLDS |        STIM |        STIA },
-		{ VK_FORMAT_R32_SFLOAT,					SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R32G32_UINT,				SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R32G32_SINT,				SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R32G32_SFLOAT,				SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R32G32B32A32_UINT,			SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R32G32B32A32_SINT,			SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_R32G32B32A32_SFLOAT,		SAIM | BLSR | COAT | BLDS |        STIM },
-		{ VK_FORMAT_B10G11R11_UFLOAT_PACK32,	SAIM | BLSR |               SIFL },
-		{ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,		SAIM | BLSR |               SIFL },
-		{ VK_FORMAT_D16_UNORM,					SAIM | BLSR |                                           DSAT },
-		{ VK_FORMAT_D32_SFLOAT,					SAIM | BLSR }
+		{ VK_FORMAT_B4G4R4A4_UNORM_PACK16,		SAIM | BLSR | TRSR | TRDS |               SIFL },
+		{ VK_FORMAT_R5G6B5_UNORM_PACK16,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_A1R5G5B5_UNORM_PACK16,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_R8_UNORM,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_R8_SNORM,					SAIM | BLSR | TRSR | TRDS |               SIFL },
+		{ VK_FORMAT_R8_UINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R8_SINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R8G8_UNORM,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_R8G8_SNORM,					SAIM | BLSR | TRSR | TRDS |               SIFL },
+		{ VK_FORMAT_R8G8_UINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R8G8_SINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R8G8B8A8_UNORM,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL | STIM | CABL },
+		{ VK_FORMAT_R8G8B8A8_SNORM,				SAIM | BLSR | TRSR | TRDS |               SIFL | STIM },
+		{ VK_FORMAT_R8G8B8A8_UINT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R8G8B8A8_SINT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R8G8B8A8_SRGB,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_B8G8R8A8_UNORM,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_B8G8R8A8_SRGB,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_A8B8G8R8_UNORM_PACK32,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_A8B8G8R8_SNORM_PACK32,		SAIM | BLSR | TRSR | TRDS |               SIFL },
+		{ VK_FORMAT_A8B8G8R8_UINT_PACK32,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_A8B8G8R8_SINT_PACK32,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_A8B8G8R8_SRGB_PACK32,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_A2B10G10R10_UNORM_PACK32,	SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_A2B10G10R10_UINT_PACK32,	SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R16_UINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R16_SINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R16_SFLOAT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_R16G16_UINT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R16G16_SINT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS },
+		{ VK_FORMAT_R16G16_SFLOAT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL |        CABL },
+		{ VK_FORMAT_R16G16B16A16_UINT,			SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R16G16B16A16_SINT,			SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R16G16B16A16_SFLOAT,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS | SIFL | STIM | CABL },
+		{ VK_FORMAT_R32_UINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM |        STIA },
+		{ VK_FORMAT_R32_SINT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM |        STIA },
+		{ VK_FORMAT_R32_SFLOAT,					SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R32G32_UINT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R32G32_SINT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R32G32_SFLOAT,				SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R32G32B32A32_UINT,			SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R32G32B32A32_SINT,			SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_R32G32B32A32_SFLOAT,		SAIM | BLSR | TRSR | TRDS | COAT | BLDS |        STIM },
+		{ VK_FORMAT_B10G11R11_UFLOAT_PACK32,	SAIM | BLSR | TRSR | TRDS |               SIFL },
+		{ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,		SAIM | BLSR | TRSR | TRDS |               SIFL },
+		{ VK_FORMAT_D16_UNORM,					SAIM | BLSR | TRSR | TRDS |                                           DSAT },
 	};
 
 	size_t formatpairs = sizeof(formatflags) / sizeof(Formatpair);
@@ -3166,6 +3167,20 @@
 			allOk = false;
 		}
 
+		// Compressed formats have optional support for some features
+		if (isCompressedFormat(format) && supported & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)
+		{
+			const VkFormatFeatureFlags		required2	= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |  VK_FORMAT_FEATURE_TRANSFER_DST_BIT | VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT | VK_FORMAT_FEATURE_BLIT_SRC_BIT;
+			if ((supported & required2) != required2)
+			{
+				log << TestLog::Message << "ERROR in " << fieldName << ":\n"
+					<< "  required: " << getFormatFeatureFlagsStr(required2) << "\n  "
+					<< "  missing: " << getFormatFeatureFlagsStr(~supported & required2)
+					<< TestLog::EndMessage;
+				allOk = false;
+			}
+		}
+
 		if ((supported & notAllowedFeatures) != 0)
 		{
 			log << TestLog::Message << "ERROR in " << fieldName << ":\n"
@@ -3450,13 +3465,16 @@
 
 	for (int setNdx = 0; setNdx < DE_LENGTH_OF_ARRAY(s_compressedFormatSets); ++setNdx)
 	{
-		const char* const	setName			= s_compressedFormatSets[setNdx].setName;
-		const char* const	featureName		= s_compressedFormatSets[setNdx].featureName;
-		const bool			featureBitSet	= features.*s_compressedFormatSets[setNdx].feature == VK_TRUE;
+		const char* const			setName				= s_compressedFormatSets[setNdx].setName;
+		const char* const			featureName			= s_compressedFormatSets[setNdx].featureName;
+		const bool					featureBitSet		= features.*s_compressedFormatSets[setNdx].feature == VK_TRUE;
+		const VkFormatFeatureFlags	requiredFeatures	=
+			VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT | VK_FORMAT_FEATURE_BLIT_SRC_BIT | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
+			VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
 		const bool			allSupported	= optimalTilingFeaturesSupportedForAll(context,
 																				   s_compressedFormatSets[setNdx].formatsBegin,
 																				   s_compressedFormatSets[setNdx].formatsEnd,
-																				   VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT);
+																				   requiredFeatures);
 
 		if (featureBitSet && !allSupported)
 		{
diff --git a/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp
index 7170b03..e9da165 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp
@@ -489,6 +489,7 @@
 	AllocationKind					allocationKind;
 	bool							isCube;
 	SeparateDepthStencilLayoutMode	separateDepthStencilLayoutMode;
+	bool							isColorMultipleSubresourceRangeTest;
 };
 
 class ImageClearingTestInstance : public vkt::TestInstance
@@ -1222,7 +1223,7 @@
 
 			for (deUint32 mipLevel = 0; mipLevel < m_imageMipLevels; ++mipLevel)
 			{
-				const int			clearColorNdx	= (mipLevel < m_thresholdMipLevel ? 0 : 1);
+				const int			clearColorNdx	= ((mipLevel < m_thresholdMipLevel || m_params.isColorMultipleSubresourceRangeTest) ? 0 : 1);
 				const VkExtent3D	extent			= getMipLevelExtent(m_params.imageExtent, mipLevel);
 
 				for (deUint32 z = 0; z < extent.depth;  ++z)
@@ -1258,10 +1259,10 @@
 class ClearColorImageTestInstance : public ImageClearingTestInstance
 {
 public:
-				ClearColorImageTestInstance	(Context& context, const TestParams& testParams, bool twoStep = false) : ImageClearingTestInstance (context, testParams), m_twoStep(twoStep) {}
-	TestStatus	iterate						(void);
+						ClearColorImageTestInstance	(Context& context, const TestParams& testParams, bool twoStep = false) : ImageClearingTestInstance (context, testParams), m_twoStep(twoStep) {}
+	virtual TestStatus	iterate						(void);
 protected:
-	bool		m_twoStep;
+	bool				m_twoStep;
 };
 
 class TwoStepClearColorImageTestInstance : public ClearColorImageTestInstance
@@ -1270,6 +1271,67 @@
 	TwoStepClearColorImageTestInstance (Context& context, const TestParams& testParams) : ClearColorImageTestInstance(context, testParams, true) {}
 };
 
+class ClearColorImageMultipleSubresourceRangeTestInstance : public ClearColorImageTestInstance
+{
+public:
+	ClearColorImageMultipleSubresourceRangeTestInstance	(Context& context, const TestParams& testParams) : ClearColorImageTestInstance(context, testParams, false) {}
+	virtual TestStatus	iterate			(void);
+};
+
+TestStatus ClearColorImageMultipleSubresourceRangeTestInstance::iterate(void)
+{
+	std::vector<VkImageSubresourceRange> subresourceRanges;
+
+	DE_ASSERT(m_imageMipLevels > 1u);
+
+	deUint32 mipLevel = 0u;
+	// Create a subresource range per mipmap level.
+	do {
+		subresourceRanges.push_back(makeImageSubresourceRange(m_imageAspectFlags, mipLevel++, 1u, m_params.clearLayerRange.baseArrayLayer, m_params.clearLayerRange.layerCount));
+	} while (mipLevel < m_imageMipLevels);
+
+	beginCommandBuffer(0);
+
+	pipelineImageBarrier(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,				// VkPipelineStageFlags		srcStageMask
+						 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,			// VkPipelineStageFlags		dstStageMask
+						 0,												// VkAccessFlags			srcAccessMask
+						 (m_isAttachmentFormat
+							? VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
+							: VK_ACCESS_TRANSFER_WRITE_BIT),			// VkAccessFlags			dstAccessMask
+						 VK_IMAGE_LAYOUT_UNDEFINED,						// VkImageLayout			oldLayout;
+						 (m_isAttachmentFormat
+							? VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
+							: VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL));	// VkImageLayout			newLayout;
+
+	if (m_isAttachmentFormat)
+	{
+		beginRenderPass(VK_SUBPASS_CONTENTS_INLINE, m_params.initValue);
+		endRenderPass(m_vkd, *m_commandBuffer);
+
+		pipelineImageBarrier(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,		// VkPipelineStageFlags		srcStageMask
+			VK_PIPELINE_STAGE_TRANSFER_BIT,								// VkPipelineStageFlags		dstStageMask
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,						// VkAccessFlags			srcAccessMask
+			VK_ACCESS_TRANSFER_WRITE_BIT,								// VkAccessFlags			dstAccessMask
+			VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,					// VkImageLayout			oldLayout;
+			VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);						// VkImageLayout			newLayout;
+	}
+
+	// Test clear color in all ranges
+	m_vkd.cmdClearColorImage(*m_commandBuffer, *m_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &m_params.clearValue[0].color, static_cast<deUint32>(subresourceRanges.size()), subresourceRanges.data());
+
+	pipelineImageBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT,				// VkPipelineStageFlags		srcStageMask
+						 VK_PIPELINE_STAGE_TRANSFER_BIT,				// VkPipelineStageFlags		dstStageMask
+						 VK_ACCESS_TRANSFER_WRITE_BIT,					// VkAccessFlags			srcAccessMask
+						 VK_ACCESS_TRANSFER_READ_BIT,					// VkAccessFlags			dstAccessMask
+						 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,			// VkImageLayout			oldLayout;
+						 VK_IMAGE_LAYOUT_GENERAL);						// VkImageLayout			newLayout;
+
+	endCommandBuffer();
+	submitCommandBuffer();
+
+	return verifyResultImage("cmdClearColorImage passed");
+}
+
 TestStatus ClearColorImageTestInstance::iterate (void)
 {
 	std::vector<VkImageSubresourceRange> subresourceRanges;
@@ -1338,10 +1400,10 @@
 class ClearDepthStencilImageTestInstance : public ImageClearingTestInstance
 {
 public:
-				ClearDepthStencilImageTestInstance	(Context& context, const TestParams& testParams, bool twoStep = false) : ImageClearingTestInstance (context, testParams), m_twoStep(twoStep) {}
-	TestStatus	iterate								(void);
+						ClearDepthStencilImageTestInstance	(Context& context, const TestParams& testParams, bool twoStep = false) : ImageClearingTestInstance (context, testParams), m_twoStep(twoStep) {}
+	virtual TestStatus	iterate								(void);
 protected:
-	bool		m_twoStep;
+	bool				m_twoStep;
 };
 
 class TwoStepClearDepthStencilImageTestInstance : public ClearDepthStencilImageTestInstance
@@ -1350,6 +1412,70 @@
 	TwoStepClearDepthStencilImageTestInstance (Context& context, const TestParams& testParams) : ClearDepthStencilImageTestInstance (context, testParams, true) { }
 };
 
+class ClearDepthStencilImageMultipleSubresourceRangeTestInstance : public ClearDepthStencilImageTestInstance
+{
+public:
+	ClearDepthStencilImageMultipleSubresourceRangeTestInstance	(Context& context, const TestParams& testParams) :  ClearDepthStencilImageTestInstance(context, testParams, false) { }
+	virtual TestStatus	iterate					(void);
+};
+
+TestStatus ClearDepthStencilImageMultipleSubresourceRangeTestInstance::iterate (void)
+{
+	VkImageLayout		layout	= (m_isAttachmentFormat
+									?	VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
+									:	VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
+	VkImageAspectFlags	aspectMask	= m_imageAspectFlags;
+
+	// Depth/Stencil formats only. No separate layout modes.
+	DE_ASSERT(m_params.separateDepthStencilLayoutMode == SEPARATE_DEPTH_STENCIL_LAYOUT_MODE_NONE);
+
+	std::vector<VkImageSubresourceRange> subresourceRanges;
+
+    subresourceRanges.push_back(makeImageSubresourceRange(VK_IMAGE_ASPECT_STENCIL_BIT, 0u, 1u, m_params.clearLayerRange.baseArrayLayer, m_params.clearLayerRange.layerCount));
+    subresourceRanges.push_back(makeImageSubresourceRange(VK_IMAGE_ASPECT_DEPTH_BIT, 0u, 1u, m_params.clearLayerRange.baseArrayLayer, m_params.clearLayerRange.layerCount));
+
+	beginCommandBuffer(0);
+
+	pipelineImageBarrier(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,					// VkPipelineStageFlags		srcStageMask
+						 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,				// VkPipelineStageFlags		dstStageMask
+						 0,													// VkAccessFlags			srcAccessMask
+						 (m_isAttachmentFormat
+							?	VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
+							:	VK_ACCESS_TRANSFER_WRITE_BIT),				// VkAccessFlags			dstAccessMask
+						 VK_IMAGE_LAYOUT_UNDEFINED,							// VkImageLayout			oldLayout;
+						 layout,											// VkImageLayout			newLayout;
+						 aspectMask);										// VkImageAspectFlags		aspectMask;
+
+	if (m_isAttachmentFormat)
+	{
+		beginRenderPass(VK_SUBPASS_CONTENTS_INLINE, m_params.initValue);
+		endRenderPass(m_vkd, *m_commandBuffer);
+
+		pipelineImageBarrier(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,					// VkPipelineStageFlags		srcStageMask
+							 VK_PIPELINE_STAGE_TRANSFER_BIT,						// VkPipelineStageFlags		dstStageMask
+							 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,			// VkAccessFlags			srcAccessMask
+							 VK_ACCESS_TRANSFER_WRITE_BIT,							// VkAccessFlags			dstAccessMask
+							 layout,												// VkImageLayout			oldLayout;
+							 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,					// VkImageLayout			newLayout;
+							 aspectMask);											// VkImageAspectFlags		aspectMask;
+	}
+
+	m_vkd.cmdClearDepthStencilImage(*m_commandBuffer, *m_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &m_params.clearValue[0].depthStencil, static_cast<deUint32>(subresourceRanges.size()), subresourceRanges.data());
+
+	pipelineImageBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT,					// VkPipelineStageFlags		srcStageMask
+						 VK_PIPELINE_STAGE_TRANSFER_BIT,					// VkPipelineStageFlags		dstStageMask
+						 VK_ACCESS_TRANSFER_WRITE_BIT,						// VkAccessFlags			srcAccessMask
+						 VK_ACCESS_TRANSFER_READ_BIT,						// VkAccessFlags			dstAccessMask
+						 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,				// VkImageLayout			oldLayout;
+						 VK_IMAGE_LAYOUT_GENERAL,							// VkImageLayout			newLayout;
+						 aspectMask);										// VkImageAspectFlags		aspectMask;
+
+	endCommandBuffer();
+	submitCommandBuffer();
+
+	return verifyResultImage("cmdClearDepthStencilImage passed");
+}
+
 TestStatus ClearDepthStencilImageTestInstance::iterate (void)
 {
 	VkImageLayout		layout	= (m_isAttachmentFormat
@@ -1941,8 +2067,8 @@
 						for (size_t imageFormatIndex = 0; imageFormatIndex < numOfColorImageFormatsToTest; ++imageFormatIndex)
 						{
 							const VkFormat		format			= colorImageFormatsToTest[imageFormatIndex];
-							const std::string	testCaseName	= getFormatCaseName(format) + dimensionsString;
-							const TestParams	testParams		=
+							std::string	testCaseName	= getFormatCaseName(format) + dimensionsString;
+							TestParams	testParams		=
 							{
 								false,																// bool								useSingleMipLevel;
 								imageTypesToTest[imageTypeIndex],									// VkImageType						imageType;
@@ -1963,11 +2089,25 @@
 								allocationKind,														// AllocationKind					allocationKind;
 								false,																// bool								isCube;
 								SEPARATE_DEPTH_STENCIL_LAYOUT_MODE_NONE,							// SeparateDepthStencilLayoutMode	separateDepthStencilLayoutMode;
+								false,																// bool								isColorMultipleSubresourceRangeTest;
 							};
+
 							if (!imageLayerParamsToTest[imageLayerParamsIndex].twoStep)
+							{
 								imageLayersGroup->addChild(new InstanceFactory1<ClearColorImageTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Color Image", testParams));
+
+								// Removing linear images as the miplevels may be 1
+								if (imageTilingsToTest[imageTilingIndex] == VK_IMAGE_TILING_OPTIMAL)
+								{
+									testParams.isColorMultipleSubresourceRangeTest = true;
+									testCaseName += "_multiple_subresourcerange";
+									imageLayersGroup->addChild(new InstanceFactory1<ClearColorImageMultipleSubresourceRangeTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Color Image with two ranges", testParams));
+								}
+							}
 							else
+							{
 								imageLayersGroup->addChild(new InstanceFactory1<TwoStepClearColorImageTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Color Image", testParams));
+							}
 						}
 					}
 					imageTilingGroup->addChild(imageLayersGroup.release());
@@ -2011,7 +2151,7 @@
 							 (separateDepthStencilLayoutMode == SEPARATE_DEPTH_STENCIL_LAYOUT_MODE_STENCIL) ? "_separate_layouts_stencil" :
 							 "")
 							+ dimensionsString;
-						const TestParams	testParams		=
+						TestParams	testParams		=
 						{
 							true,																// bool								useSingleMipLevel;
 							VK_IMAGE_TYPE_2D,													// VkImageType						imageType;
@@ -2032,12 +2172,23 @@
 							allocationKind,														// AllocationKind					allocationKind;
 							false,																// bool								isCube;
 							SeparateDepthStencilLayoutMode(separateDepthStencilLayoutMode),		// SeparateDepthStencilLayoutMode	separateDepthStencilLayoutMode;
+							false,																// bool								isColorMultipleSubresourceRangeTest;
 						};
 
 						if (!imageLayerParamsToTest[imageLayerParamsIndex].twoStep)
+						{
 							imageLayersGroup->addChild(new InstanceFactory1<ClearDepthStencilImageTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Depth/Stencil Image", testParams));
+
+							if (separateDepthStencilLayoutMode == SEPARATE_DEPTH_STENCIL_LAYOUT_MODE_NONE && hasDepth && hasStencil)
+							{
+								const std::string	testCaseNameRanges	= getFormatCaseName(format) + dimensionsString + "_multiple_subresourcerange";
+								imageLayersGroup->addChild(new InstanceFactory1<ClearDepthStencilImageMultipleSubresourceRangeTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseNameRanges, "Clear Depth/Stencil Image with ranges", testParams));
+							}
+						}
 						else
+						{
 							imageLayersGroup->addChild(new InstanceFactory1<TwoStepClearDepthStencilImageTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Depth/Stencil Image", testParams));
+						}
 					}
 				}
 			}
@@ -2088,6 +2239,7 @@
 							allocationKind,													// AllocationKind					allocationKind;
 							imageLayerParamsToTest[imageLayerParamsIndex].isCube,			// bool								isCube;
 							SEPARATE_DEPTH_STENCIL_LAYOUT_MODE_NONE,						// SeparateDepthStencilLayoutMode	separateDepthStencilLayoutMode;
+							false,															// bool								isColorMultipleSubresourceRangeTest;
 						};
 						colorAttachmentClearLayersGroup->addChild(new InstanceFactory1<ClearAttachmentTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Color Attachment", testParams));
 						if (dimensions.width > 1)
@@ -2155,6 +2307,7 @@
 								allocationKind,													// AllocationKind					allocationKind;
 								imageLayerParamsToTest[imageLayerParamsIndex].isCube,			// bool								isCube;
 								SeparateDepthStencilLayoutMode(separateDepthStencilLayoutMode),	// SeparateDepthStencilLayoutMode	separateDepthStencilLayoutMode;
+								false,															// bool								isColorMultipleSubresourceRangeTest;
 							};
 							depthStencilLayersGroup->addChild(new InstanceFactory1<ClearAttachmentTestInstance, TestParams>(testCtx, NODETYPE_SELF_VALIDATE, testCaseName, "Clear Depth/Stencil Attachment", testParams));
 							if (dimensions.width > 1)
diff --git a/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp b/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
index 0cc13d6..12fb584 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
@@ -220,12 +220,19 @@
 				for (size_t instanceExtNdx = 0; instanceExtNdx < DE_LENGTH_OF_ARRAY(instanceExtensionNames); instanceExtNdx++)
 				{
 					vector<const char*> instanceExtFunctions;
+					vector<const char*> deviceExtFunctions;
 
 					if (isSupportedInstanceExt(instanceExtensionNames[instanceExtNdx], apiVersion))
+					{
 						getInstanceExtensionFunctions(apiVersion, instanceExtensionNames[instanceExtNdx], instanceExtFunctions);
+						getDeviceExtensionFunctions(apiVersion, instanceExtensionNames[instanceExtNdx], deviceExtFunctions);
+					}
 
 					for (size_t instanceFuncNdx = 0; instanceFuncNdx < instanceExtFunctions.size(); instanceFuncNdx++)
 						extFunctions.push_back(FunctionInfo(instanceExtFunctions[instanceFuncNdx], FUNCTIONORIGIN_INSTANCE));
+
+					for (size_t deviceFuncNdx = 0; deviceFuncNdx < deviceExtFunctions.size(); deviceFuncNdx++)
+						extFunctions.push_back(FunctionInfo(deviceExtFunctions[deviceFuncNdx], FUNCTIONORIGIN_DEVICE));
 				}
 
 				// Add supported device extension functions
@@ -450,9 +457,15 @@
 			if (functionType == FUNCTIONORIGIN_PLATFORM)
 				checkPlatformFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
 			else if (functionType == FUNCTIONORIGIN_INSTANCE)
+			{
 				checkInstanceFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
+				checkDeviceFunction(ctx, log, testsArr[ndx].first, DE_FALSE, failsQuantity);
+			}
 			else if (functionType == FUNCTIONORIGIN_DEVICE)
+			{
+				checkInstanceFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
 				checkDeviceFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
+			}
 		}
 		return startingQuantity == failsQuantity;
 	}
diff --git a/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp b/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
index 80a96c2..19d706b 100644
--- a/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
+++ b/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
@@ -38,6 +38,7 @@
 #include "deDefs.h"
 #include "deMath.h"
 #include "deRandom.h"
+#include "deRandom.hpp"
 #include "deSharedPtr.hpp"
 #include "deString.h"
 
@@ -749,14 +750,16 @@
 		buffers[i] = VkBufferSp(new Unique<VkBuffer>(createBuffer(vk, device, &bufferCreateInfo)));
 
 		// query opaque capture address before binding memory
-		if (useKHR) {
+		if (useKHR)
+		{
 			bufferDeviceAddressInfo.buffer = **buffers[i];
 			opaqueBufferAddrs[i] = vk.getBufferOpaqueCaptureAddress(device, &bufferDeviceAddressInfo);
 		}
 
 		allocations[i] = AllocationSp(allocateExtended(vki, vk, physDevice, device, getBufferMemoryRequirements(vk, device, **buffers[i]), MemoryRequirement::HostVisible, &allocFlagsInfo));
 
-		if (useKHR) {
+		if (useKHR)
+		{
 			deviceMemoryOpaqueCaptureAddressInfo.memory = allocations[i]->getMemory();
 			opaqueMemoryAddrs[i] = vk.getDeviceMemoryOpaqueCaptureAddress(device, &deviceMemoryOpaqueCaptureAddressInfo);
 		}
@@ -1323,6 +1326,209 @@
 	return tcu::TestStatus(res, qpGetTestResultName(res));
 }
 
+class CaptureReplayTestCase : public TestCase
+{
+public:
+							CaptureReplayTestCase	(tcu::TestContext& context, const char* name, const char* desc, deUint32 seed);
+							~CaptureReplayTestCase	(void);
+	virtual	void			initPrograms			(SourceCollections& programCollection) const { DE_UNREF(programCollection); }
+	virtual TestInstance*	createInstance			(Context& context) const;
+	virtual void			checkSupport			(Context& context) const;
+private:
+	deUint32				m_seed;
+};
+
+CaptureReplayTestCase::CaptureReplayTestCase (tcu::TestContext& context, const char* name, const char* desc, deUint32 seed)
+	: vkt::TestCase	(context, name, desc)
+	, m_seed(seed)
+{
+}
+
+CaptureReplayTestCase::~CaptureReplayTestCase	(void)
+{
+}
+
+void CaptureReplayTestCase::checkSupport (Context& context) const
+{
+	if (!context.isBufferDeviceAddressSupported())
+		TCU_THROW(NotSupportedError, "Physical storage buffer pointers not supported");
+
+	bool isBufferDeviceAddressWithCaptureReplaySupported =
+			(context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address") && context.getBufferDeviceAddressFeatures().bufferDeviceAddressCaptureReplay) ||
+			(context.isDeviceFunctionalitySupported("VK_EXT_buffer_device_address") && context.getBufferDeviceAddressFeaturesEXT().bufferDeviceAddressCaptureReplay);
+
+	if (!isBufferDeviceAddressWithCaptureReplaySupported)
+		TCU_THROW(NotSupportedError, "Capture/replay of physical storage buffer pointers not supported");
+}
+
+class CaptureReplayTestInstance : public TestInstance
+{
+public:
+						CaptureReplayTestInstance	(Context& context, deUint32 seed);
+						~CaptureReplayTestInstance	(void);
+	tcu::TestStatus		iterate						(void);
+private:
+	deUint32			m_seed;
+};
+
+CaptureReplayTestInstance::CaptureReplayTestInstance (Context& context, deUint32 seed)
+	: vkt::TestInstance		(context)
+	, m_seed(seed)
+{
+}
+
+CaptureReplayTestInstance::~CaptureReplayTestInstance (void)
+{
+}
+
+TestInstance* CaptureReplayTestCase::createInstance (Context& context) const
+{
+	return new CaptureReplayTestInstance(context, m_seed);
+}
+
+tcu::TestStatus CaptureReplayTestInstance::iterate (void)
+{
+	const InstanceInterface&vki						= m_context.getInstanceInterface();
+	const DeviceInterface&	vk						= m_context.getDeviceInterface();
+	const VkPhysicalDevice&	physDevice				= m_context.getPhysicalDevice();
+	const VkDevice			device					= m_context.getDevice();
+	const bool				useKHR					= m_context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address");
+	de::Random				rng(m_seed);
+
+	VkBufferDeviceAddressCreateInfoEXT addressCreateInfoEXT =
+	{
+		VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,	// VkStructureType	 sType;
+		DE_NULL,													// const void*		 pNext;
+		0x000000000ULL,												// VkDeviceSize		 deviceAddress
+	};
+
+	VkBufferOpaqueCaptureAddressCreateInfo bufferOpaqueCaptureAddressCreateInfo =
+	{
+		VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,	// VkStructureType	 sType;
+		DE_NULL,														// const void*		 pNext;
+		0x000000000ULL,													// VkDeviceSize		 opaqueCaptureAddress
+	};
+
+	const deUint32 numBuffers = 100;
+	std::vector<VkDeviceSize> bufferSizes(numBuffers);
+	// random sizes, powers of two [4K, 4MB]
+	for (deUint32 i = 0; i < numBuffers; ++i)
+		bufferSizes[i] = 4096 << (rng.getUint32() % 11);
+
+	std::vector<VkDeviceAddress> gpuAddrs(numBuffers);
+	std::vector<deUint64> opaqueBufferAddrs(numBuffers);
+	std::vector<deUint64> opaqueMemoryAddrs(numBuffers);
+
+	VkBufferDeviceAddressInfo bufferDeviceAddressInfo =
+	{
+		VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,	// VkStructureType	 sType;
+		DE_NULL,										// const void*		 pNext;
+		0,												// VkBuffer			 buffer
+	};
+
+	VkDeviceMemoryOpaqueCaptureAddressInfo deviceMemoryOpaqueCaptureAddressInfo =
+	{
+		VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,	// VkStructureType	 sType;
+		DE_NULL,														// const void*		 pNext;
+		0,																// VkDeviceMemory	 memory;
+	};
+
+	vector<VkBufferSp>			buffers(numBuffers);
+	vector<AllocationSp>		allocations(numBuffers);
+
+	VkBufferCreateInfo			bufferCreateInfo = makeBufferCreateInfo(DE_NULL, 0,
+														VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
+														VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT |
+														VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
+														VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT);
+
+	// VkMemoryAllocateFlags to be filled out later
+	VkMemoryAllocateFlagsInfo	allocFlagsInfo =
+	{
+		VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,	//	VkStructureType	sType
+		DE_NULL,										//	const void*		pNext
+		0,												//	VkMemoryAllocateFlags    flags
+		0,												//	uint32_t                 deviceMask
+	};
+
+	VkMemoryOpaqueCaptureAddressAllocateInfo memoryOpaqueCaptureAddressAllocateInfo =
+	{
+		VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,	// VkStructureType    sType;
+		DE_NULL,														// const void*        pNext;
+		0,																// uint64_t           opaqueCaptureAddress;
+	};
+
+	if (useKHR)
+		allocFlagsInfo.flags |= VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT;
+
+	if (useKHR)
+	{
+		allocFlagsInfo.flags |= VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
+		allocFlagsInfo.pNext = &memoryOpaqueCaptureAddressAllocateInfo;
+	}
+
+	for (deUint32 i = 0; i < numBuffers; ++i)
+	{
+		bufferCreateInfo.size = bufferSizes[i];
+		buffers[i] = VkBufferSp(new Unique<VkBuffer>(createBuffer(vk, device, &bufferCreateInfo)));
+
+		// query opaque capture address before binding memory
+		if (useKHR)
+		{
+			bufferDeviceAddressInfo.buffer = **buffers[i];
+			opaqueBufferAddrs[i] = vk.getBufferOpaqueCaptureAddress(device, &bufferDeviceAddressInfo);
+		}
+
+		allocations[i] = AllocationSp(allocateExtended(vki, vk, physDevice, device, getBufferMemoryRequirements(vk, device, **buffers[i]), MemoryRequirement::HostVisible, &allocFlagsInfo));
+
+		if (useKHR)
+		{
+			deviceMemoryOpaqueCaptureAddressInfo.memory = allocations[i]->getMemory();
+			opaqueMemoryAddrs[i] = vk.getDeviceMemoryOpaqueCaptureAddress(device, &deviceMemoryOpaqueCaptureAddressInfo);
+		}
+
+		VK_CHECK(vk.bindBufferMemory(device, **buffers[i], allocations[i]->getMemory(), 0));
+	}
+
+	for (deUint32 i = 0; i < numBuffers; ++i)
+	{
+		bufferDeviceAddressInfo.buffer = **buffers[i];
+		if (useKHR)
+			gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
+		else
+			gpuAddrs[i] = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
+	}
+	buffers.clear();
+	buffers.resize(numBuffers);
+	allocations.clear();
+	allocations.resize(numBuffers);
+
+	bufferCreateInfo.pNext = useKHR ? (void *)&bufferOpaqueCaptureAddressCreateInfo : (void *)&addressCreateInfoEXT;
+
+	for (deInt32 i = numBuffers-1; i >= 0; --i)
+	{
+		addressCreateInfoEXT.deviceAddress = gpuAddrs[i];
+		bufferOpaqueCaptureAddressCreateInfo.opaqueCaptureAddress = opaqueBufferAddrs[i];
+		memoryOpaqueCaptureAddressAllocateInfo.opaqueCaptureAddress = opaqueMemoryAddrs[i];
+
+		bufferCreateInfo.size = bufferSizes[i];
+		buffers[i] = VkBufferSp(new Unique<VkBuffer>(createBuffer(vk, device, &bufferCreateInfo)));
+		allocations[i] = AllocationSp(allocateExtended(vki, vk, physDevice, device, getBufferMemoryRequirements(vk, device, **buffers[i]), MemoryRequirement::HostVisible, &allocFlagsInfo));
+		VK_CHECK(vk.bindBufferMemory(device, **buffers[i], allocations[i]->getMemory(), 0));
+
+		bufferDeviceAddressInfo.buffer = **buffers[i];
+		VkDeviceSize newAddr;
+		if (useKHR)
+			newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
+		else
+			newAddr = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
+		if (newAddr != gpuAddrs[i])
+			return tcu::TestStatus(QP_TEST_RESULT_FAIL, "address mismatch");
+	}
+
+	return tcu::TestStatus(QP_TEST_RESULT_PASS, qpGetTestResultName(QP_TEST_RESULT_PASS));
+}
+
 }	// anonymous
 
 tcu::TestCaseGroup*	createBufferDeviceAddressTests (tcu::TestContext& testCtx)
@@ -1453,6 +1659,13 @@
 		}
 		group->addChild(setGroup.release());
 	}
+
+	de::MovePtr<tcu::TestCaseGroup> capGroup(new tcu::TestCaseGroup(testCtx, "capture_replay_stress", "Test VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"));
+	for (deUint32 i = 0; i < 10; ++i)
+	{
+		capGroup->addChild(new CaptureReplayTestCase(testCtx, (std::string("seed_") + de::toString(i)).c_str(), "", i));
+	}
+	group->addChild(capGroup.release());
 	return group.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorUpdateTests.cpp b/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorUpdateTests.cpp
index 67dfa04..e74eda3 100644
--- a/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorUpdateTests.cpp
+++ b/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorUpdateTests.cpp
@@ -30,6 +30,20 @@
 #include "vkMemUtil.hpp"
 #include "vkBuilderUtil.hpp"
 #include "vkQueryUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkImageUtil.hpp"
+#include "vkBarrierUtil.hpp"
+#include "vkImageWithMemory.hpp"
+#include "vkBufferWithMemory.hpp"
+
+#include "tcuTexture.hpp"
+#include "tcuTestLog.hpp"
+
+#include <string>
+#include <vector>
+#include <utility>
 
 namespace vkt
 {
@@ -126,6 +140,558 @@
 	return group.release();
 }
 
+enum class PointerCase
+{
+	ZERO = 0,
+	ONE,
+	DESTROYED,
+};
+
+struct SamplerlessParams
+{
+	vk::VkDescriptorType	type;
+	PointerCase				pointer;
+};
+
+class SamplerlessDescriptorWriteTestCase : public vkt::TestCase
+{
+public:
+								SamplerlessDescriptorWriteTestCase	(tcu::TestContext& testCtx, const std::string& name, const std::string& description, const SamplerlessParams& params);
+	virtual						~SamplerlessDescriptorWriteTestCase	(void) {}
+
+	virtual void				initPrograms						(vk::SourceCollections& programCollection) const;
+	virtual vkt::TestInstance*	createInstance						(Context& context) const;
+	virtual void				checkSupport						(Context& context) const;
+
+	vk::VkFormatFeatureFlagBits	getMainImageFeature					(void) const;
+
+	static const vk::VkFormat	kImageFormat						= vk::VK_FORMAT_R8G8B8A8_UNORM;
+private:
+	SamplerlessParams			m_params;
+};
+
+class SamplerlessDescriptorWriteTestInstance : public vkt::TestInstance
+{
+public:
+								SamplerlessDescriptorWriteTestInstance	(Context& context, const SamplerlessParams& params);
+	virtual						~SamplerlessDescriptorWriteTestInstance	(void) {}
+
+	vk::VkSampler				getSamplerHandle						(void) const;
+	virtual tcu::TestStatus		iterate									(void);
+
+	vk::VkExtent3D				getMainImageExtent						(void) const;
+	vk::VkImageUsageFlags		getMainImageUsage						(void) const;
+	vk::VkImageLayout			getMainImageShaderLayout				(void) const;
+
+	static const vk::VkFormat	kImageFormat							= SamplerlessDescriptorWriteTestCase::kImageFormat;
+	static const vk::VkExtent3D	kFramebufferExtent;
+	static const vk::VkExtent3D	kMinimumExtent;
+	static const tcu::Vec4		kDescriptorColor;
+private:
+	SamplerlessParams			m_params;
+};
+
+const vk::VkExtent3D	SamplerlessDescriptorWriteTestInstance::kFramebufferExtent	= vk::makeExtent3D(64u, 64u, 1u);
+const vk::VkExtent3D	SamplerlessDescriptorWriteTestInstance::kMinimumExtent		= vk::makeExtent3D(1u, 1u, 1u);
+const tcu::Vec4			SamplerlessDescriptorWriteTestInstance::kDescriptorColor	{0.0f, 1.0f, 0.0f, 1.0f};
+
+SamplerlessDescriptorWriteTestCase::SamplerlessDescriptorWriteTestCase (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const SamplerlessParams& params)
+	: vkt::TestCase{testCtx, name, description}
+	, m_params(params)
+{
+}
+
+void SamplerlessDescriptorWriteTestCase::initPrograms (vk::SourceCollections& programCollection) const
+{
+	const std::string vertexShader =
+		"#version 450\n"
+		"layout(location=0) in vec4 position;\n"
+		"void main() { gl_Position = position; }\n";
+
+	programCollection.glslSources.add("vert") << glu::VertexSource(vertexShader);
+
+	std::string descriptorDecl;
+	std::string readOp;
+	std::string extensions;
+
+	switch (m_params.type)
+	{
+	case vk::VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
+		extensions		= "#extension GL_EXT_samplerless_texture_functions : require\n";
+		descriptorDecl	= "layout(set=0, binding=0) uniform texture2D img;";
+		readOp			= "texelFetch(img, ivec2(0, 0), 0)";
+		break;
+	case vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
+		descriptorDecl	= "layout(rgba8, set=0, binding=0) uniform image2D img;";
+		readOp			= "imageLoad(img, ivec2(0, 0))";
+		break;
+	case vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
+		descriptorDecl	= "layout(input_attachment_index=0, set=0, binding=0) uniform subpassInput img;";
+		readOp			= "subpassLoad(img)";
+		break;
+	default:
+		DE_ASSERT(false);
+		break;
+	}
+
+	std::ostringstream fragmentShader;
+
+	fragmentShader
+		<< "#version 450\n"
+		<< extensions
+		<< descriptorDecl << "\n"
+		<< "layout(location = 0) out vec4 color_out;\n"
+		<< "void main()\n"
+		<< "{\n"
+		<< "    color_out = " << readOp << ";\n"
+		<< "}\n"
+		;
+
+	programCollection.glslSources.add("frag") << glu::FragmentSource(fragmentShader.str());
+}
+
+vk::VkFormatFeatureFlagBits SamplerlessDescriptorWriteTestCase::getMainImageFeature (void) const
+{
+	vk::VkFormatFeatureFlagBits feature = static_cast<vk::VkFormatFeatureFlagBits>(0);
+
+	switch (m_params.type)
+	{
+	case vk::VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:		feature = vk::VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;		break;
+	case vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:		feature = vk::VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT;		break;
+	case vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:	feature = vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;	break;
+	default:
+		DE_ASSERT(false);
+		break;
+	}
+
+	return feature;
+}
+
+void SamplerlessDescriptorWriteTestCase::checkSupport (Context& context) const
+{
+	const auto&	vki				= context.getInstanceInterface();
+	const auto	physicalDevice	= context.getPhysicalDevice();
+	const auto	mainFeature		= getMainImageFeature();
+
+	const vk::VkFormatFeatureFlags features =
+	(
+		vk::VK_FORMAT_FEATURE_TRANSFER_DST_BIT		|	// For color clearing.
+		vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT	|	// For the separate frame buffer image (uses the same format).
+		mainFeature
+	);
+
+	const auto props = vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, kImageFormat);
+	if ((props.optimalTilingFeatures & features) != features)
+		TCU_THROW(NotSupportedError, "Image format does not support the required features");
+}
+
+vkt::TestInstance* SamplerlessDescriptorWriteTestCase::createInstance (Context& context) const
+{
+	return new SamplerlessDescriptorWriteTestInstance{context, m_params};
+}
+
+SamplerlessDescriptorWriteTestInstance::SamplerlessDescriptorWriteTestInstance (Context& context, const SamplerlessParams& params)
+	: vkt::TestInstance{context}
+	, m_params(params)
+{
+}
+
+struct DestroyedSampler
+{
+	vk::VkSampler sampler;
+
+	DestroyedSampler (Context& context)
+		: sampler{DE_NULL}
+	{
+		const vk::VkSamplerCreateInfo createInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,		// VkStructureType		sType;
+			nullptr,										// const void*			pNext;
+			0u,												// VkSamplerCreateFlags	flags;
+			vk::VK_FILTER_NEAREST,							// VkFilter				magFilter;
+			vk::VK_FILTER_NEAREST,							// VkFilter				minFilter;
+			vk::VK_SAMPLER_MIPMAP_MODE_NEAREST,				// VkSamplerMipmapMode	mipmapMode;
+			vk::VK_SAMPLER_ADDRESS_MODE_REPEAT,				// VkSamplerAddressMode	addressModeU;
+			vk::VK_SAMPLER_ADDRESS_MODE_REPEAT,				// VkSamplerAddressMode	addressModeV;
+			vk::VK_SAMPLER_ADDRESS_MODE_REPEAT,				// VkSamplerAddressMode	addressModeW;
+			0.0f,											// float				mipLodBias;
+			VK_FALSE,										// VkBool32				anisotropyEnable;
+			1.0f,											// float				maxAnisotropy;
+			VK_FALSE,										// VkBool32				compareEnable;
+			vk::VK_COMPARE_OP_NEVER,						// VkCompareOp			compareOp;
+			0.0f,											// float				minLod;
+			0.0f,											// float				maxLod;
+			vk::VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,	// VkBorderColor		borderColor;
+			VK_FALSE,										// VkBool32				unnormalizedCoordinates;
+		};
+		const auto newSampler = vk::createSampler(context.getDeviceInterface(), context.getDevice(), &createInfo);
+		sampler = newSampler.get();
+		// newSampler will be destroyed here and sampler will hold the former handle.
+	}
+};
+
+vk::VkSampler SamplerlessDescriptorWriteTestInstance::getSamplerHandle (void) const
+{
+	if (m_params.pointer == PointerCase::ZERO)	return vk::VkSampler{DE_NULL};
+	if (m_params.pointer == PointerCase::ONE)	return vk::VkSampler{1};
+	static const DestroyedSampler destroyedSampler{m_context};
+	return destroyedSampler.sampler;
+}
+
+vk::VkExtent3D SamplerlessDescriptorWriteTestInstance::getMainImageExtent (void) const
+{
+	const vk::VkExtent3D* extent = nullptr;
+
+	switch (m_params.type)
+	{
+	case vk::VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:		// fallthrough
+	case vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:		extent = &kMinimumExtent;		break;
+	case vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:	extent = &kFramebufferExtent;	break;
+	default:
+		DE_ASSERT(false);
+		break;
+	}
+
+	return *extent;
+}
+
+vk::VkImageUsageFlags SamplerlessDescriptorWriteTestInstance::getMainImageUsage (void) const
+{
+	vk::VkImageUsageFlags usage = vk::VK_IMAGE_USAGE_TRANSFER_DST_BIT;	// Used when clearing the image.
+
+	switch (m_params.type)
+	{
+	case vk::VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:		usage |= vk::VK_IMAGE_USAGE_SAMPLED_BIT;			break;
+	case vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:		usage |= vk::VK_IMAGE_USAGE_STORAGE_BIT;			break;
+	case vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:	usage |= vk::VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;	break;
+	default:
+		DE_ASSERT(false);
+		break;
+	}
+
+	return usage;
+}
+
+vk::VkImageLayout SamplerlessDescriptorWriteTestInstance::getMainImageShaderLayout (void) const
+{
+	vk::VkImageLayout layout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
+
+	switch (m_params.type)
+	{
+	case vk::VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:		// fallthrough
+	case vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:	layout = vk::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;	break;
+	case vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:		layout = vk::VK_IMAGE_LAYOUT_GENERAL;					break;
+	default:
+		DE_ASSERT(false);
+		break;
+	}
+
+	return layout;
+}
+
+
+tcu::TestStatus SamplerlessDescriptorWriteTestInstance::iterate (void)
+{
+	const auto&	vkd			= m_context.getDeviceInterface();
+	const auto	device		= m_context.getDevice();
+	auto&		allocator	= m_context.getDefaultAllocator();
+	const auto	queue		= m_context.getUniversalQueue();
+	const auto	queueIndex	= m_context.getUniversalQueueFamilyIndex();
+	const auto	tcuFormat	= vk::mapVkFormat(kImageFormat);
+
+	const vk::VkImageCreateInfo mainImgCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType;
+		nullptr,									// const void*				pNext;
+		0u,											// VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						// VkImageType				imageType;
+		kImageFormat,								// VkFormat					format;
+		getMainImageExtent(),						// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		1u,											// deUint32					arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					// VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling			tiling;
+		getMainImageUsage(),						// VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueIndex,								// const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				// VkImageLayout			initialLayout;
+	};
+
+	const vk::VkImageCreateInfo fbImgCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType;
+		nullptr,									// const void*				pNext;
+		0u,											// VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						// VkImageType				imageType;
+		kImageFormat,								// VkFormat					format;
+		kFramebufferExtent,							// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		1u,											// deUint32					arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					// VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling			tiling;
+		(vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |	// VkImageUsageFlags		usage;
+		 vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT),			// Used when verifying the image.
+		vk::VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueIndex,								// const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				// VkImageLayout			initialLayout;
+	};
+
+	// Create main and framebuffer images.
+	const vk::ImageWithMemory mainImage	{vkd, device, allocator, mainImgCreateInfo,	vk::MemoryRequirement::Any};
+	const vk::ImageWithMemory fbImage	{vkd, device, allocator, fbImgCreateInfo,	vk::MemoryRequirement::Any};
+
+	// Corresponding image views.
+	const auto colorSubresourceRange	= vk::makeImageSubresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+	const auto mainView					= vk::makeImageView(vkd, device, mainImage.get(),	vk::VK_IMAGE_VIEW_TYPE_2D, kImageFormat, colorSubresourceRange);
+	const auto fbView					= vk::makeImageView(vkd, device, fbImage.get(),		vk::VK_IMAGE_VIEW_TYPE_2D, kImageFormat, colorSubresourceRange);
+
+	// Buffer to copy rendering result to.
+	const vk::VkDeviceSize		resultsBufferSize	= static_cast<vk::VkDeviceSize>(static_cast<deUint32>(tcu::getPixelSize(tcuFormat)) * kFramebufferExtent.width * kFramebufferExtent.height * kFramebufferExtent.depth);
+	const auto					resultsBufferInfo	= vk::makeBufferCreateInfo(resultsBufferSize, vk::VK_BUFFER_USAGE_TRANSFER_DST_BIT);
+	const vk::BufferWithMemory	resultsBuffer		{vkd, device, allocator, resultsBufferInfo, vk::MemoryRequirement::HostVisible};
+
+	const std::vector<tcu::Vec4> fullScreenQuad =
+	{
+		{ -1.f, -1.f,	0.f, 1.f },
+		{  1.f, -1.f,	0.f, 1.f },
+		{ -1.f,  1.f,	0.f, 1.f },
+		{ -1.f,  1.f,	0.f, 1.f },
+		{  1.f, -1.f,	0.f, 1.f },
+		{  1.f,  1.f,	0.f, 1.f },
+	};
+
+	// Vertex buffer.
+	const vk::VkDeviceSize		vertexBufferSize	= static_cast<vk::VkDeviceSize>(fullScreenQuad.size() * sizeof(decltype(fullScreenQuad)::value_type));
+	const auto					vertexBufferInfo	= vk::makeBufferCreateInfo(vertexBufferSize, vk::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
+	const vk::BufferWithMemory	vertexBuffer		{vkd, device, allocator, vertexBufferInfo, vk::MemoryRequirement::HostVisible};
+
+	// Copy data to vertex buffer.
+	const auto&	vertexAlloc		= vertexBuffer.getAllocation();
+	const auto	vertexDataPtr	= reinterpret_cast<char*>(vertexAlloc.getHostPtr()) + vertexAlloc.getOffset();
+	deMemcpy(vertexDataPtr, fullScreenQuad.data(), static_cast<size_t>(vertexBufferSize));
+	vk::flushAlloc(vkd, device, vertexAlloc);
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder layoutBuilder;
+	layoutBuilder.addSingleBinding(m_params.type, vk::VK_SHADER_STAGE_ALL_GRAPHICS);
+	const auto descriptorSetLayout = layoutBuilder.build(vkd, device);
+
+	// Descriptor pool.
+	vk::DescriptorPoolBuilder poolBuilder;
+	poolBuilder.addType(m_params.type);
+	const auto descriptorPool = poolBuilder.build(vkd, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+	// Descriptor set.
+	const auto descriptorSet = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+
+	// Update descriptor set with the descriptor.
+	// IMPORTANT: the chosen sampler handle is used here.
+	vk::DescriptorSetUpdateBuilder updateBuilder;
+	const auto descriptorImageInfo = vk::makeDescriptorImageInfo(getSamplerHandle(), mainView.get(), getMainImageShaderLayout());
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), m_params.type, &descriptorImageInfo);
+	updateBuilder.update(vkd, device);
+
+	// Shader modules.
+	const auto vertexModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0u);
+	const auto fragModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0u);
+
+	// Render pass.
+	const vk::VkAttachmentDescription fbAttachment =
+	{
+		0u,												// VkAttachmentDescriptionFlags	flags;
+		kImageFormat,									// VkFormat						format;
+		vk::VK_SAMPLE_COUNT_1_BIT,						// VkSampleCountFlagBits		samples;
+		vk::VK_ATTACHMENT_LOAD_OP_CLEAR,				// VkAttachmentLoadOp			loadOp;
+		vk::VK_ATTACHMENT_STORE_OP_STORE,				// VkAttachmentStoreOp			storeOp;
+		vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			// VkAttachmentLoadOp			stencilLoadOp;
+		vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			// VkAttachmentStoreOp			stencilStoreOp;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,					// VkImageLayout				initialLayout;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout				finalLayout;
+	};
+
+	std::vector<vk::VkAttachmentDescription> attachmentDescs;
+	attachmentDescs.push_back(fbAttachment);
+
+	if (m_params.type == vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)
+	{
+		// Add it as a frame buffer attachment.
+		const vk::VkAttachmentDescription inputAttachment =
+		{
+			0u,												// VkAttachmentDescriptionFlags	flags;
+			kImageFormat,									// VkFormat						format;
+			vk::VK_SAMPLE_COUNT_1_BIT,						// VkSampleCountFlagBits		samples;
+			vk::VK_ATTACHMENT_LOAD_OP_LOAD,					// VkAttachmentLoadOp			loadOp;
+			vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			// VkAttachmentStoreOp			storeOp;
+			vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			// VkAttachmentLoadOp			stencilLoadOp;
+			vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			// VkAttachmentStoreOp			stencilStoreOp;
+			getMainImageShaderLayout(),						// VkImageLayout				initialLayout;
+			getMainImageShaderLayout(),						// VkImageLayout				finalLayout;
+		};
+
+		attachmentDescs.push_back(inputAttachment);
+	}
+
+	std::vector<vk::VkAttachmentReference> inputAttachments;
+	if (m_params.type == vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)
+	{
+		const vk::VkAttachmentReference inputRef =
+		{
+			1u,												// deUint32			attachment;
+			getMainImageShaderLayout(),						// VkImageLayout	layout;
+		};
+
+		inputAttachments.push_back(inputRef);
+	}
+
+	const vk::VkAttachmentReference colorRef =
+	{
+			0u,												// deUint32			attachment;
+			vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout	layout;
+	};
+	const std::vector<vk::VkAttachmentReference> colorAttachments(1u, colorRef);
+
+	const vk::VkSubpassDescription subpass =
+	{
+		0u,																// VkSubpassDescriptionFlags		flags;
+		vk::VK_PIPELINE_BIND_POINT_GRAPHICS,							// VkPipelineBindPoint				pipelineBindPoint;
+		static_cast<deUint32>(inputAttachments.size()),					// deUint32							inputAttachmentCount;
+		(inputAttachments.empty() ? nullptr : inputAttachments.data()),	// const VkAttachmentReference*		pInputAttachments;
+		static_cast<deUint32>(colorAttachments.size()),					// deUint32							colorAttachmentCount;
+		colorAttachments.data(),										// const VkAttachmentReference*		pColorAttachments;
+		0u,																// const VkAttachmentReference*		pResolveAttachments;
+		nullptr,														// const VkAttachmentReference*		pDepthStencilAttachment;
+		0u,																// deUint32							preserveAttachmentCount;
+		nullptr,														// const deUint32*					pPreserveAttachments;
+	};
+	const std::vector<vk::VkSubpassDescription> subpasses(1u, subpass);
+
+	const vk::VkRenderPassCreateInfo renderPassInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,	// VkStructureType					sType;
+		nullptr,										// const void*						pNext;
+		0u,												// VkRenderPassCreateFlags			flags;
+		static_cast<deUint32>(attachmentDescs.size()),	// deUint32							attachmentCount;
+		attachmentDescs.data(),							// const VkAttachmentDescription*	pAttachments;
+		static_cast<deUint32>(subpasses.size()),		// deUint32							subpassCount;
+		subpasses.data(),								// const VkSubpassDescription*		pSubpasses;
+		0u,												// deUint32							dependencyCount;
+		nullptr,										// const VkSubpassDependency*		pDependencies;
+	};
+	const auto renderPass = vk::createRenderPass(vkd, device, &renderPassInfo);
+
+	// Framebuffer.
+	std::vector<vk::VkImageView> attachments;
+	attachments.push_back(fbView.get());
+	if (m_params.type == vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)
+		attachments.push_back(mainView.get());
+	const auto framebuffer = vk::makeFramebuffer(vkd, device, renderPass.get(), static_cast<deUint32>(attachments.size()), attachments.data(), kFramebufferExtent.width, kFramebufferExtent.height, kFramebufferExtent.depth);
+
+	// Pipeline layout.
+	const auto pipelineLayout = vk::makePipelineLayout(vkd, device, descriptorSetLayout.get());
+
+	// Graphics pipeline.
+	const std::vector<vk::VkViewport>	viewports(1u, vk::makeViewport(kFramebufferExtent));
+	const std::vector<vk::VkRect2D>		scissors(1u, vk::makeRect2D(kFramebufferExtent));
+
+	const auto pipeline = vk::makeGraphicsPipeline(
+		vkd, device, pipelineLayout.get(),
+		vertexModule.get(), DE_NULL, DE_NULL, DE_NULL, fragModule.get(),
+		renderPass.get(), viewports, scissors);
+
+	// Command pool and command buffer.
+	const auto cmdPool		= vk::createCommandPool(vkd, device, vk::VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueIndex);
+	const auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd, device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	const auto cmdBuffer	= cmdBufferPtr.get();
+
+	// Draw quad.
+	const vk::VkRect2D		renderArea			= vk::makeRect2D(kFramebufferExtent);
+	const tcu::Vec4			clearFbColor		(0.0f, 0.0f, 0.0f, 1.0f);
+	const vk::VkDeviceSize	vertexBufferOffset	= 0ull;
+
+	const auto vtxBufferBarrier	= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_HOST_WRITE_BIT, vk::VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, vertexBuffer.get(), 0ull, vertexBufferSize);
+	const auto preClearBarrier	= vk::makeImageMemoryBarrier(0u, vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mainImage.get(), colorSubresourceRange);
+	const auto postClearBarrier	= vk::makeImageMemoryBarrier(vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_ACCESS_SHADER_READ_BIT, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, getMainImageShaderLayout(), mainImage.get(), colorSubresourceRange);
+	const auto clearDescColor	= vk::makeClearValueColor(kDescriptorColor);
+
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, 0u, 0u, nullptr, 1u, &vtxBufferBarrier, 0u, nullptr);
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &preClearBarrier);
+	vkd.cmdClearColorImage(cmdBuffer, mainImage.get(), vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearDescColor.color, 1u, &colorSubresourceRange);
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &postClearBarrier);
+
+	vk::beginRenderPass(vkd, cmdBuffer, renderPass.get(), framebuffer.get(), renderArea, clearFbColor);
+	vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.get());
+	vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout.get(), 0u, 1u, &descriptorSet.get(), 0u, nullptr);
+	vkd.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &vertexBuffer.get(), &vertexBufferOffset);
+	vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(fullScreenQuad.size()), 1u, 0u, 0u);
+	vk::endRenderPass(vkd, cmdBuffer);
+
+	const tcu::IVec2 copySize{static_cast<int>(kFramebufferExtent.width), static_cast<int>(kFramebufferExtent.height)};
+	vk::copyImageToBuffer(vkd, cmdBuffer, fbImage.get(), resultsBuffer.get(), copySize);
+
+	vk::endCommandBuffer(vkd, cmdBuffer);
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Check results.
+	const auto& resultsBufferAlloc = resultsBuffer.getAllocation();
+	vk::invalidateAlloc(vkd, device, resultsBufferAlloc);
+
+	const auto							resultsBufferPtr	= reinterpret_cast<const char*>(resultsBufferAlloc.getHostPtr()) + resultsBufferAlloc.getOffset();
+	const tcu::ConstPixelBufferAccess	resultPixels		{tcuFormat, copySize[0], copySize[1], 1, resultsBufferPtr};
+
+	bool pass = true;
+	for (int x = 0; pass && x < resultPixels.getWidth(); ++x)
+	for (int y = 0; pass && y < resultPixels.getHeight(); ++y)
+	for (int z = 0; pass && z < resultPixels.getDepth(); ++z)
+	{
+		const auto pixel = resultPixels.getPixel(x, y, z);
+		pass = (pixel == kDescriptorColor);
+	}
+
+	tcu::TestStatus status = tcu::TestStatus::pass("Pass");
+	if (!pass)
+	{
+		auto& log = m_context.getTestContext().getLog();
+		log << tcu::TestLog::Image("color", "Rendered image", resultPixels);
+		status = tcu::TestStatus::fail("Pixel mismatch; please check the rendered image");
+	}
+
+	return status;
+}
+
+tcu::TestCaseGroup* createSamplerlessWriteTests (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, "samplerless", "Verify sampler unused with some descriptor image types"));
+
+	const std::vector<std::pair<vk::VkDescriptorType, std::string>> descriptorTypes =
+	{
+		std::make_pair(vk::VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,	"sampled_img"),
+		std::make_pair(vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,	"storage_img"),
+		std::make_pair(vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,	"input_attachment"),
+	};
+
+	const std::vector<std::pair<PointerCase, std::string>> pointerCases =
+	{
+		std::make_pair(PointerCase::ZERO,		"sampler_zero"),
+		std::make_pair(PointerCase::ONE,		"sampler_one"),
+		std::make_pair(PointerCase::DESTROYED,	"sampler_destroyed"),
+	};
+
+	for (const auto& typeCase		: descriptorTypes)
+	for (const auto& pointerCase	: pointerCases)
+	{
+		const std::string		caseName	= typeCase.second + "_" + pointerCase.second;
+		const SamplerlessParams	params		{typeCase.first, pointerCase.first};
+
+		group->addChild(new SamplerlessDescriptorWriteTestCase(testCtx, caseName, "", params));
+	}
+
+	return group.release();
+}
+
 } // anonymous
 
 
@@ -134,6 +700,7 @@
 	de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, "descriptor_update", "Update descriptor sets"));
 
 	group->addChild(createEmptyDescriptorUpdateTests(testCtx));
+	group->addChild(createSamplerlessWriteTests(testCtx));
 
 	return group.release();
 }
diff --git a/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp b/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp
index 76a6dae..178b699 100644
--- a/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp
+++ b/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp
@@ -449,12 +449,14 @@
 	{
 		log << tcu::TestLog::Message << cases[caseNdx].desc << tcu::TestLog::EndMessage;
 
-		const std::vector<Vec4> vertices = genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 0.0f);
-		DrawState			drawState		(topology, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData		drawCallData	(vertices);
-		VulkanProgram		vulkanProgram	(shaders);
+		const std::vector<Vec4>		vertices			= genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 0.0f);
+		FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+		PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+		DrawCallData				drawCallData		(topology, vertices);
+		VulkanProgram				vulkanProgram		(shaders);
 
-		VulkanDrawContext	drawContext(context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext			drawContext			(context, framebufferState);
+		drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		drawContext.draw();
 
 		const int numBlackPixels = countPixels(drawContext.getColorPixels(), Vec4(0.0f, 0.0f, 0.0f, 1.0f), Vec4());
@@ -503,12 +505,14 @@
 	{
 		log << tcu::TestLog::Message << cases[caseNdx].desc << tcu::TestLog::EndMessage;
 
-		const std::vector<Vec4> vertices = genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 0.0f);
-		DrawState				drawState		(topology, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData			drawCallData	(vertices);
-		VulkanProgram			vulkanProgram	(shaders);
+		const std::vector<Vec4>		vertices			= genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 0.0f);
+		FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+		PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+		DrawCallData				drawCallData		(topology, vertices);
+		VulkanProgram				vulkanProgram		(shaders);
 
-		VulkanDrawContext		drawContext(context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext			drawContext			(context, framebufferState);
+		drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		drawContext.draw();
 
 		// All pixels must be black -- nothing is drawn.
@@ -591,14 +595,15 @@
 	{
 		log << tcu::TestLog::Message << cases[caseNdx].desc << tcu::TestLog::EndMessage;
 
-		const std::vector<Vec4> vertices = genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 1.0f);
+		const std::vector<Vec4>		vertices			= genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 1.0f);
+		FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+		PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+		pipelineState.depthClampEnable					= cases[caseNdx].depthClampEnable;
+		DrawCallData				drawCallData		(topology, vertices);
+		VulkanProgram				vulkanProgram		(shaders);
 
-		DrawState					drawState		(topology, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData				drawCallData	(vertices);
-		VulkanProgram				vulkanProgram	(shaders);
-		drawState.depthClampEnable = cases[caseNdx].depthClampEnable;
-
-		VulkanDrawContext			drawContext(context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext			drawContext			(context, framebufferState);
+		drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		drawContext.draw();
 
 		const int numPixels = countPixels(drawContext.getColorPixels(), cases[caseNdx].regionOffset, regionSize, cases[caseNdx].color, Vec4());
@@ -680,16 +685,17 @@
 	{
 		log << tcu::TestLog::Message << cases[caseNdx].desc << tcu::TestLog::EndMessage;
 
-		const std::vector<Vec4> vertices = genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 1.0f);
+		const std::vector<Vec4>		vertices			= genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 1.0f);
+		FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+		PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+		pipelineState.depthClampEnable					= false;
+		pipelineState.explicitDepthClipEnable			= true;
+		pipelineState.depthClipEnable					= cases[caseNdx].depthClipEnable;
+		DrawCallData				drawCallData		(topology, vertices);
+		VulkanProgram				vulkanProgram		(shaders);
 
-		DrawState					drawState		(topology, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData				drawCallData	(vertices);
-		VulkanProgram				vulkanProgram	(shaders);
-		drawState.depthClampEnable = false;
-		drawState.explicitDepthClipEnable = true;
-		drawState.depthClipEnable = cases[caseNdx].depthClipEnable;
-
-		VulkanDrawContext			drawContext(context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext			drawContext(context, framebufferState);
+		drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		drawContext.draw();
 
 		const int numPixels = countPixels(drawContext.getColorPixels(), cases[caseNdx].regionOffset, regionSize, cases[caseNdx].color, Vec4());
@@ -709,16 +715,17 @@
 		{
 			log << tcu::TestLog::Message << cases[caseNdx].desc << tcu::TestLog::EndMessage;
 
-			const std::vector<Vec4> vertices = genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 1.0f);
+			const std::vector<Vec4>		vertices			= genVertices(topology, Vec4(0.0f, 0.0f, cases[caseNdx].zPos, 0.0f), 1.0f);
+			FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+			PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+			pipelineState.depthClampEnable					= true;
+			pipelineState.explicitDepthClipEnable			= true;
+			pipelineState.depthClipEnable					= cases[caseNdx].depthClipEnable;
+			DrawCallData				drawCallData		(topology, vertices);
+			VulkanProgram				vulkanProgram		(shaders);
 
-			DrawState					drawState		(topology, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-			DrawCallData				drawCallData	(vertices);
-			VulkanProgram				vulkanProgram	(shaders);
-			drawState.depthClampEnable = true;
-			drawState.explicitDepthClipEnable = true;
-			drawState.depthClipEnable = cases[caseNdx].depthClipEnable;
-
-			VulkanDrawContext			drawContext(context, drawState, drawCallData, vulkanProgram);
+			VulkanDrawContext			drawContext(context, framebufferState);
+			drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 			drawContext.draw();
 
 			const int numPixels = countPixels(drawContext.getColorPixels(), cases[caseNdx].regionOffset, regionSize, cases[caseNdx].color, Vec4());
@@ -782,11 +789,13 @@
 
 	log << tcu::TestLog::Message << "Drawing several large points just outside the clip volume. Expecting an empty image or all points rendered." << tcu::TestLog::EndMessage;
 
-	DrawState			drawState		(VK_PRIMITIVE_TOPOLOGY_POINT_LIST, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-	DrawCallData		drawCallData	(vertices);
-	VulkanProgram		vulkanProgram	(shaders);
+	FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+	PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+	DrawCallData				drawCallData		(VK_PRIMITIVE_TOPOLOGY_POINT_LIST, vertices);
+	VulkanProgram				vulkanProgram		(shaders);
 
-	VulkanDrawContext	drawContext(context, drawState, drawCallData, vulkanProgram);
+	VulkanDrawContext			drawContext(context, framebufferState);
+	drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 	drawContext.draw();
 
 	// Popful case: All pixels must be black -- nothing is drawn.
@@ -912,12 +921,13 @@
 		<< tcu::TestLog::Message << "Line width is " << lineWidth << "." << tcu::TestLog::EndMessage
 		<< tcu::TestLog::Message << "strictLines is " << (strictLines ? "VK_TRUE." : "VK_FALSE.") << tcu::TestLog::EndMessage;
 
-	DrawState					drawState		(VK_PRIMITIVE_TOPOLOGY_LINE_LIST, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-	DrawCallData				drawCallData	(vertices);
-	VulkanProgram				vulkanProgram	(shaders);
-	drawState.lineWidth			= lineWidth;
+	FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+	PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+	DrawCallData				drawCallData		(VK_PRIMITIVE_TOPOLOGY_LINE_LIST, vertices);
+	VulkanProgram				vulkanProgram		(shaders);
 
-	VulkanDrawContext			drawContext(context, drawState, drawCallData, vulkanProgram);
+	VulkanDrawContext			drawContext(context, framebufferState);
+	drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 	drawContext.draw();
 
 	// Popful case: All pixels must be black -- nothing is drawn.
@@ -961,14 +971,14 @@
 			refVertices.push_back(wideLineVertices[3]);
 		}
 
-		WideLineVertexShader		vertexShader;
-		WideLineFragmentShader		fragmentShader;
+		std::shared_ptr<rr::VertexShader>	vertexShader	= std::make_shared<WideLineVertexShader>();
+		std::shared_ptr<rr::FragmentShader>	fragmentShader	= std::make_shared<WideLineFragmentShader>();
 
 		// Draw wide line was two triangles
-		DrawState					refDrawState	(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData				refCallData		(refVertices);
-		ReferenceDrawContext		refDrawContext	(refDrawState, refCallData, vertexShader, fragmentShader);
+		DrawCallData				refCallData			(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, refVertices);
 
+		ReferenceDrawContext		refDrawContext		(framebufferState);
+		refDrawContext.registerDrawObject( pipelineState, vertexShader, fragmentShader, refCallData );
 		refDrawContext.draw();
 
 		if (tcu::intThresholdCompare(log, "Compare", "Result comparsion", refDrawContext.getColorPixels(), drawContext.getColorPixels(), tcu::UVec4(1), tcu::COMPARE_LOG_ON_ERROR))
@@ -1315,14 +1325,15 @@
 		<< tcu::TestLog::Message << "Using " << caseDef.numClipDistances << " ClipDistance(s) and " << caseDef.numCullDistances << " CullDistance(s)" << tcu::TestLog::EndMessage
 		<< tcu::TestLog::Message << "Expecting upper half of the clipped bars to be black." << tcu::TestLog::EndMessage;
 
-	DrawState			drawState		(caseDef.topology, RENDER_SIZE, RENDER_SIZE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-	DrawCallData		drawCallData	(vertices);
-	VulkanProgram		vulkanProgram	(shaders);
-
+	FrameBufferState			framebufferState	(RENDER_SIZE, RENDER_SIZE);
+	PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
 	if (caseDef.enableTessellation)
-		drawState.numPatchControlPoints = NUM_PATCH_CONTROL_POINTS;
+		pipelineState.numPatchControlPoints = NUM_PATCH_CONTROL_POINTS;
+	DrawCallData				drawCallData		(caseDef.topology, vertices);
+	VulkanProgram				vulkanProgram		(shaders);
 
-	VulkanDrawContext	drawContext(context, drawState, drawCallData, vulkanProgram);
+	VulkanDrawContext			drawContext			(context, framebufferState);
+	drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 	drawContext.draw();
 
 	// Count black pixels in the whole image.
@@ -1444,12 +1455,14 @@
 		<< tcu::TestLog::Message << "Using " << numClipDistances << " clipping plane(s), one of them possibly having negative values." << tcu::TestLog::EndMessage
 		<< tcu::TestLog::Message << "Expecting a uniform gray area, no missing (black) nor overlapped (white) pixels." << tcu::TestLog::EndMessage;
 
-	DrawState					drawState		(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, RENDER_SIZE_LARGE, RENDER_SIZE_LARGE, context.getDeviceProperties().limits.subPixelPrecisionBits);
-	DrawCallData				drawCallData	(vertices);
-	VulkanProgram				vulkanProgram	(shaders);
-	drawState.blendEnable		= true;
+	FrameBufferState			framebufferState	(RENDER_SIZE_LARGE, RENDER_SIZE_LARGE);
+	PipelineState				pipelineState		(context.getDeviceProperties().limits.subPixelPrecisionBits);
+	pipelineState.blendEnable	= true;
+	DrawCallData				drawCallData		(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, vertices);
+	VulkanProgram				vulkanProgram		(shaders);
 
-	VulkanDrawContext			drawContext(context, drawState, drawCallData, vulkanProgram);
+	VulkanDrawContext			drawContext			(context, framebufferState);
+	drawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 	drawContext.draw();
 
 	const int numGrayPixels		= countPixels(drawContext.getColorPixels(), Vec4(0.5f, 0.5f, 0.5f, 1.0f), Vec4(0.02f, 0.02f, 0.02f, 0.0f));
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp
index 20fd272..46b2ec2 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp
@@ -51,6 +51,9 @@
 	vk::VkFormat				format;
 	tcu::UVec2					size;
 	vk::VkSampleCountFlagBits	samples;
+	// From the SPIR-V point of view, structured test variants will allow us to test interpolation decorations on struct members
+	// instead of plain ids.
+	bool						useStructure;
 };
 
 template<typename T>
@@ -129,80 +132,125 @@
 
 void DrawTestCase::initPrograms (vk::SourceCollections& programCollection) const
 {
-	const std::string					vertShader_multi	(
+	const std::string							blockName		= "ifb";
+	const std::map<std::string, std::string>	replacements	=
+	{
+		std::pair<std::string, std::string>{"blockOpeningOut"	, (m_params.useStructure ? "layout(location = 0) out InterfaceBlock {\n" : "")},
+		std::pair<std::string, std::string>{"blockOpeningIn"	, (m_params.useStructure ? "layout(location = 0) in InterfaceBlock {\n" : "")},
+		std::pair<std::string, std::string>{"blockClosure"		, (m_params.useStructure ? "} " + blockName + ";\n" : "")},
+		std::pair<std::string, std::string>{"extensions"		, (m_params.useStructure ? "#extension GL_ARB_enhanced_layouts : require\n" : "")},
+		std::pair<std::string, std::string>{"accessPrefix"		, (m_params.useStructure ? blockName + "." : "")},
+		std::pair<std::string, std::string>{"outQual"			, (m_params.useStructure ? "" : "out ")},
+		std::pair<std::string, std::string>{"inQual"			, (m_params.useStructure ? "" : "in ")},
+		std::pair<std::string, std::string>{"indent"			, (m_params.useStructure ? "    " : "")},
+	};
+
+	const tcu::StringTemplate vertShaderMulti
+	{
 		"#version 430\n"
+		"${extensions}"
+		"\n"
 		"layout(location = 0) in vec4 in_position;\n"
 		"layout(location = 1) in vec4 in_color;\n"
-		"layout(location = 0) out vec4 out_color_smooth;\n"
-		"layout(location = 1) flat out vec4 out_color_flat;\n"
-		"layout(location = 2) noperspective out vec4 out_color_noperspective;\n"
-		"layout(location = 3) centroid out vec4 out_color_centroid;\n"
+		"\n"
+		"${blockOpeningOut}"
+		"${indent}layout(location = 0) ${outQual}vec4 out_color_smooth;\n"
+		"${indent}layout(location = 1) ${outQual}flat vec4 out_color_flat;\n"
+		"${indent}layout(location = 2) ${outQual}noperspective vec4 out_color_noperspective;\n"
+		"${indent}layout(location = 3) ${outQual}centroid vec4 out_color_centroid;\n"
+		"${blockClosure}"
+		"\n"
 		"void main()\n"
 		"{\n"
-		"    out_color_smooth = in_color;\n"
-		"    out_color_flat = in_color;\n"
-		"    out_color_noperspective = in_color;\n"
-		"    out_color_centroid = in_color;\n"
+		"    ${accessPrefix}out_color_smooth = in_color;\n"
+		"    ${accessPrefix}out_color_flat = in_color;\n"
+		"    ${accessPrefix}out_color_noperspective = in_color;\n"
+		"    ${accessPrefix}out_color_centroid = in_color;\n"
 		"    gl_Position = in_position;\n"
-		"}\n");
+		"}\n"
+	};
 
-	const std::string					fragShader_multi	(
+	const tcu::StringTemplate fragShaderMulti
+	{
 		"#version 430\n"
-		"layout(location = 0) in vec4 in_color_smooth;\n"
-		"layout(location = 1) flat in vec4 in_color_flat;\n"
-		"layout(location = 2) noperspective in vec4 in_color_noperspective;\n"
-		"layout(location = 3) centroid in vec4 in_color_centroid;\n"
+		"${extensions}"
+		"\n"
+		"${blockOpeningIn}"
+		"${indent}layout(location = 0) ${inQual}vec4 in_color_smooth;\n"
+		"${indent}layout(location = 1) ${inQual}flat vec4 in_color_flat;\n"
+		"${indent}layout(location = 2) ${inQual}noperspective vec4 in_color_noperspective;\n"
+		"${indent}layout(location = 3) ${inQual}centroid vec4 in_color_centroid;\n"
+		"${blockClosure}"
+		"\n"
 		"layout(location = " + de::toString(SMOOTH) + ") out vec4 out_color_smooth;\n"
 		"layout(location = " + de::toString(FLAT) + ") out vec4 out_color_flat;\n"
 		"layout(location = " + de::toString(NOPERSPECTIVE) + ") out vec4 out_color_noperspective;\n"
 		"layout(location = " + de::toString(CENTROID) + ") out vec4 out_color_centroid;\n"
+		"\n"
 		"void main()\n"
 		"{\n"
-		"    out_color_smooth = in_color_smooth;\n"
-		"    out_color_flat = in_color_flat;\n"
-		"    out_color_noperspective = in_color_noperspective;\n"
-		"    out_color_centroid = in_color_centroid;\n"
-		"}\n");
+		"    out_color_smooth = ${accessPrefix}in_color_smooth;\n"
+		"    out_color_flat = ${accessPrefix}in_color_flat;\n"
+		"    out_color_noperspective = ${accessPrefix}in_color_noperspective;\n"
+		"    out_color_centroid = ${accessPrefix}in_color_centroid;\n"
+		"}\n"
+	};
 
-	const tcu::StringTemplate			vertShader_single	(std::string(
+	const tcu::StringTemplate vertShaderSingle
+	{
 		"#version 430\n"
+		"${extensions}"
+		"\n"
 		"layout(location = 0) in vec4 in_position;\n"
 		"layout(location = 1) in vec4 in_color;\n"
-		"layout(location = 0) ${qualifier:opt} out vec4 out_color;\n"
+		"\n"
+		"${blockOpeningOut}"
+		"${indent}layout(location = 0) ${outQual}${qualifier:opt}vec4 out_color;\n"
+		"${blockClosure}"
+		"\n"
 		"void main()\n"
 		"{\n"
-		"    out_color = in_color;\n"
+		"    ${accessPrefix}out_color = in_color;\n"
 		"    gl_Position = in_position;\n"
-		"}\n"));
+		"}\n"
+	};
 
-	const tcu::StringTemplate			fragShader_single	(std::string(
+	const tcu::StringTemplate fragShaderSingle
+	{
 		"#version 430\n"
-		"layout(location = 0) ${qualifier:opt} in vec4 in_color;\n"
+		"${extensions}"
+		"\n"
+		"${blockOpeningIn}"
+		"${indent}layout(location = 0) ${inQual}${qualifier:opt}vec4 in_color;\n"
+		"${blockClosure}"
+		"\n"
 		"layout(location = 0) out vec4 out_color;\n"
+		"\n"
 		"void main()\n"
 		"{\n"
-		"    out_color = in_color;\n"
-		"}\n"));
+		"    out_color = ${accessPrefix}in_color;\n"
+		"}\n"
+	};
 
-	std::map<std::string, std::string>	smooth;
-	std::map<std::string, std::string>	flat;
-	std::map<std::string, std::string>	noperspective;
-	std::map<std::string, std::string>	centroid;
+	std::map<std::string, std::string>	smooth			= replacements;
+	std::map<std::string, std::string>	flat			= replacements;
+	std::map<std::string, std::string>	noperspective	= replacements;
+	std::map<std::string, std::string>	centroid		= replacements;
 
-	flat["qualifier"]			= "flat";
-	noperspective["qualifier"]	= "noperspective";
-	centroid["qualifier"]		= "centroid";
+	flat["qualifier"]			= "flat ";
+	noperspective["qualifier"]	= "noperspective ";
+	centroid["qualifier"]		= "centroid ";
 
-	programCollection.glslSources.add("vert_multi")			<< glu::VertexSource(vertShader_multi);
-	programCollection.glslSources.add("frag_multi")			<< glu::FragmentSource(fragShader_multi);
-	programCollection.glslSources.add("vert_smooth")		<< glu::VertexSource(vertShader_single.specialize(smooth));
-	programCollection.glslSources.add("frag_smooth")		<< glu::FragmentSource(fragShader_single.specialize(smooth));
-	programCollection.glslSources.add("vert_flat")			<< glu::VertexSource(vertShader_single.specialize(flat));
-	programCollection.glslSources.add("frag_flat")			<< glu::FragmentSource(fragShader_single.specialize(flat));
-	programCollection.glslSources.add("vert_noperspective")	<< glu::VertexSource(vertShader_single.specialize(noperspective));
-	programCollection.glslSources.add("frag_noperspective")	<< glu::FragmentSource(fragShader_single.specialize(noperspective));
-	programCollection.glslSources.add("vert_centroid")		<< glu::VertexSource(vertShader_single.specialize(centroid));
-	programCollection.glslSources.add("frag_centroid")		<< glu::FragmentSource(fragShader_single.specialize(centroid));
+	programCollection.glslSources.add("vert_multi")			<< glu::VertexSource(vertShaderMulti.specialize(replacements));
+	programCollection.glslSources.add("frag_multi")			<< glu::FragmentSource(fragShaderMulti.specialize(replacements));
+	programCollection.glslSources.add("vert_smooth")		<< glu::VertexSource(vertShaderSingle.specialize(smooth));
+	programCollection.glslSources.add("frag_smooth")		<< glu::FragmentSource(fragShaderSingle.specialize(smooth));
+	programCollection.glslSources.add("vert_flat")			<< glu::VertexSource(vertShaderSingle.specialize(flat));
+	programCollection.glslSources.add("frag_flat")			<< glu::FragmentSource(fragShaderSingle.specialize(flat));
+	programCollection.glslSources.add("vert_noperspective")	<< glu::VertexSource(vertShaderSingle.specialize(noperspective));
+	programCollection.glslSources.add("frag_noperspective")	<< glu::FragmentSource(fragShaderSingle.specialize(noperspective));
+	programCollection.glslSources.add("vert_centroid")		<< glu::VertexSource(vertShaderSingle.specialize(centroid));
+	programCollection.glslSources.add("frag_centroid")		<< glu::FragmentSource(fragShaderSingle.specialize(centroid));
 }
 
 void DrawTestCase::checkSupport (Context& context) const
@@ -544,24 +592,48 @@
 	const vk::VkFormat	format	= vk::VK_FORMAT_R8G8B8A8_UNORM;
 	const tcu::UVec2	size	(128, 128);
 
-	const struct
+	struct TestVariant
 	{
-		const std::string	name;
-		const std::string	desc;
-		const DrawParams	params;
-	} tests[] =
-	{
-		{ "1_sample",	"Without multisampling",	{ format, size, vk::VK_SAMPLE_COUNT_1_BIT	} },
-		{ "2_samples",	"2 samples",				{ format, size, vk::VK_SAMPLE_COUNT_2_BIT	} },
-		{ "4_samples",	"4 samples",				{ format, size, vk::VK_SAMPLE_COUNT_4_BIT	} },
-		{ "8_samples",	"8 samples",				{ format, size, vk::VK_SAMPLE_COUNT_8_BIT	} },
-		{ "16_samples",	"16 samples",				{ format, size, vk::VK_SAMPLE_COUNT_16_BIT	} },
-		{ "32_samples",	"32 samples",				{ format, size, vk::VK_SAMPLE_COUNT_32_BIT	} },
-		{ "64_samples",	"64 samples",				{ format, size, vk::VK_SAMPLE_COUNT_64_BIT	} },
+		const std::string				name;
+		const std::string				desc;
+		const vk::VkSampleCountFlagBits	samples;
 	};
 
-	for (int i = 0; i < DE_LENGTH_OF_ARRAY(tests); i++)
-		testGroup->addChild(new DrawTestCase(testCtx, tests[i].name, tests[i].desc, tests[i].params));
+	static const std::vector<TestVariant> testVariants =
+	{
+		{ "1_sample",	"Without multisampling",	vk::VK_SAMPLE_COUNT_1_BIT	},
+		{ "2_samples",	"2 samples",				vk::VK_SAMPLE_COUNT_2_BIT	},
+		{ "4_samples",	"4 samples",				vk::VK_SAMPLE_COUNT_4_BIT	},
+		{ "8_samples",	"8 samples",				vk::VK_SAMPLE_COUNT_8_BIT	},
+		{ "16_samples",	"16 samples",				vk::VK_SAMPLE_COUNT_16_BIT	},
+		{ "32_samples",	"32 samples",				vk::VK_SAMPLE_COUNT_32_BIT	},
+		{ "64_samples",	"64 samples",				vk::VK_SAMPLE_COUNT_64_BIT	},
+	};
+
+	struct GroupVariant
+	{
+		const bool			useStructure;
+		const std::string	groupName;
+	};
+
+	static const std::vector<GroupVariant> groupVariants =
+	{
+		{ false,	"separate"		},
+		{ true,		"structured"	},
+	};
+
+	for (const auto& grpVariant : groupVariants)
+	{
+		de::MovePtr<tcu::TestCaseGroup> group {new tcu::TestCaseGroup{testCtx, grpVariant.groupName.c_str(), ""}};
+
+		for (const auto& testVariant : testVariants)
+		{
+			const DrawParams params {format, size, testVariant.samples, grpVariant.useStructure};
+			group->addChild(new DrawTestCase(testCtx, testVariant.name, testVariant.desc, params));
+		}
+
+		testGroup->addChild(group.release());
+	}
 }
 
 }	// anonymous
diff --git a/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp b/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
index e40934c..6be4a6a 100644
--- a/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
+++ b/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
@@ -894,6 +894,7 @@
 			<< (geomOutputColor ? "layout(location = 0) out vec4 vert_color;\n\n" : "")
 			<< "out gl_PerVertex {\n"
 			<< "    vec4 gl_Position;\n"
+			<< "    float gl_PointSize;\n"
 			<< "};\n"
 			<< "\n"
 			<< "void main(void)\n"
@@ -916,15 +917,19 @@
 		if (params.testType == TEST_TYPE_DEFAULT_LAYER)
 		{
 			src << "    gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4( 0.0, -1.0, 0.0, 1.0);\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4( 0.0,  1.0, 0.0, 1.0);\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n";
 		}
 		else if (params.testType == TEST_TYPE_SINGLE_LAYER)
@@ -933,18 +938,22 @@
 
 			src << "    gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = " << targetLayer << ";\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = " << targetLayer << ";\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4( 0.0, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = " << targetLayer << ";\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4( 0.0,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = " << targetLayer << ";\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n";
 		}
 		else if (params.testType == TEST_TYPE_ALL_LAYERS || params.testType == TEST_TYPE_SECONDARY_CMD_BUFFER)
@@ -957,21 +966,25 @@
 				<< "        gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
 				<< "        vert_color  = colors[colorNdx];\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
 				<< "        vert_color  = colors[colorNdx];\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4( 0.0, -1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
 				<< "        vert_color  = colors[colorNdx];\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4( 0.0,  1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
 				<< "        vert_color  = colors[colorNdx];\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "        EndPrimitive();\n"
 				<< "    };\n";
@@ -981,18 +994,22 @@
 			src << "    for (int layerNdx = 0; layerNdx < " << numLayers << "; ++layerNdx) {\n"
 				<< "        gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4( 0.0, -1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4( 0.0,  1.0, 0.0, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        EmitVertex();\n"
 				<< "        EndPrimitive();\n"
 				<< "    };\n";
@@ -1005,10 +1022,12 @@
 				<< "\n"
 				<< "            gl_Position = vec4(posX,  1.0, 0.0, 1.0);\n"
 				<< "            gl_Layer    = layerNdx;\n"
+				<< "            gl_PointSize = 1.0;\n"
 				<< "            EmitVertex();\n"
 				<< "\n"
 				<< "            gl_Position = vec4(posX, -1.0, 0.0, 1.0);\n"
 				<< "            gl_Layer    = layerNdx;\n"
+				<< "            gl_PointSize = 1.0;\n"
 				<< "            EmitVertex();\n"
 				<< "        }\n"
 				<< "        EndPrimitive();\n"
@@ -1021,21 +1040,25 @@
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = gl_InvocationID;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    vert_color  = colors[colorNdx];\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = gl_InvocationID;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    vert_color  = colors[colorNdx];\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4( 0.0, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = gl_InvocationID;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    vert_color  = colors[colorNdx];\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4( 0.0,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = gl_InvocationID;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    vert_color  = colors[colorNdx];\n"
 				<< "    EmitVertex();\n"
 				<< "    EndPrimitive();\n";
@@ -1049,27 +1072,33 @@
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerA;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerA;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(aEnd, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerA;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "    EndPrimitive();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerB;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(bEnd,  1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerB;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "\n"
 				<< "    gl_Position = vec4(bEnd, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerB;\n"
+				<< "    gl_PointSize = 1.0;\n"
 				<< "    EmitVertex();\n"
 				<< "    EndPrimitive();\n";
 		}
@@ -1085,21 +1114,25 @@
 				<< "\n"
 				<< "        gl_Position = vec4(-1.0, -1.0, posZ, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        vert_color  = passColor;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4(-1.0,  1.0, posZ, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        vert_color  = passColor;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4(posX, -1.0, posZ, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        vert_color  = passColor;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
 				<< "        gl_Position = vec4(posX,  1.0, posZ, 1.0);\n"
 				<< "        gl_Layer    = layerNdx;\n"
+				<< "        gl_PointSize = 1.0;\n"
 				<< "        vert_color  = passColor;\n"
 				<< "        EmitVertex();\n"
 				<< "\n"
@@ -1186,15 +1219,20 @@
 tcu::TestStatus test (Context& context, const TestParams params)
 {
 	const DeviceInterface&			vk						= context.getDeviceInterface();
+	const InstanceInterface&		vki						= context.getInstanceInterface();
 	const VkDevice					device					= context.getDevice();
+	const VkPhysicalDevice			physDevice				= context.getPhysicalDevice();
 	const deUint32					queueFamilyIndex		= context.getUniversalQueueFamilyIndex();
 	const VkQueue					queue					= context.getUniversalQueue();
 	Allocator&						allocator				= context.getDefaultAllocator();
+	VkDeviceSize					nonCoherentAtomSize		= vk::getPhysicalDeviceProperties(vki, physDevice).limits.nonCoherentAtomSize;
+	VkDeviceSize					alignmentSize			= std::max<VkDeviceSize>(nonCoherentAtomSize, 4u);
 
 	const VkFormat					colorFormat				= VK_FORMAT_R8G8B8A8_UNORM;
 	const deUint32					numLayers				= (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? params.image.size.depth : params.image.numLayers);
 	const Vec4						clearColor				= Vec4(0.0f, 0.0f, 0.0f, 1.0f);
-	const VkDeviceSize				colorBufferSize			= params.image.size.width * params.image.size.height * params.image.size.depth * params.image.numLayers * tcu::getPixelSize(mapVkFormat(colorFormat));
+	const deUint32					colorImagePixelSize		= static_cast<deUint32>(tcu::getPixelSize(mapVkFormat(colorFormat)));
+	const VkDeviceSize				colorBufferSize			= static_cast<VkDeviceSize>(deAlignSize(params.image.size.width * params.image.size.height * colorImagePixelSize, static_cast<std::size_t>(alignmentSize)) * params.image.size.depth * params.image.numLayers);
 	const VkImageCreateFlags		imageCreateFlags		= (isCubeImageViewType(params.image.viewType) ? VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : (VkImageCreateFlagBits)0) |
 															  (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR : (VkImageCreateFlagBits)0);
 	const VkImageViewType			viewType				= (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : params.image.viewType);
@@ -1252,6 +1290,8 @@
 	const deUint32						queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
 	const VkQueue						queue				= context.getUniversalQueue();
 	Allocator&							allocator			= context.getDefaultAllocator();
+	VkDeviceSize						nonCoherentAtomSize = vk::getPhysicalDeviceProperties(vki, physDevice).limits.nonCoherentAtomSize;
+	VkDeviceSize						alignmentSize		= std::max<VkDeviceSize>(nonCoherentAtomSize, 4u);
 
 	const size_t						passCount			= 2;
 	const deUint32						numLayers			= (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? params.image.size.depth : params.image.numLayers);
@@ -1263,10 +1303,10 @@
 
 	const VkFormat						colorFormat			= VK_FORMAT_R8G8B8A8_UNORM;
 	const deUint32						colorImagePixelSize	= static_cast<deUint32>(tcu::getPixelSize(mapVkFormat(colorFormat)));
-	const VkDeviceSize					colorBufferSize		= params.image.size.width * params.image.size.height * params.image.size.depth * params.image.numLayers * colorImagePixelSize;
+	const VkDeviceSize					colorBufferSize		= static_cast<VkDeviceSize>( deAlignSize(params.image.size.width * params.image.size.height * colorImagePixelSize, static_cast<std::size_t>(alignmentSize)) * params.image.size.depth * params.image.numLayers );
 	const VkImageUsageFlags				colorImageUsage		= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
 
-	const bool							dsUsed				= (VK_IMAGE_VIEW_TYPE_3D != params.image.viewType);
+	const bool							dsUsed				= true;
 	const VkFormat						dsFormat			= VK_FORMAT_D24_UNORM_S8_UINT;
 	const VkImageType					dsImageType			= (imageType == VK_IMAGE_TYPE_3D ? VK_IMAGE_TYPE_2D : imageType); // depth/stencil 2D_ARRAY attachments cannot be taken from 3D image, use 2D_ARRAY image instead.
 	const VkExtent3D					dsImageSize			= makeExtent3D(params.image.size.width, params.image.size.height, 1u);
@@ -1274,11 +1314,11 @@
 	const deUint32						dsImagePixelSize	= static_cast<deUint32>(tcu::getPixelSize(mapVkFormat(dsFormat)));
 	const VkImageUsageFlags				dsImageUsage		= VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
 	const VkImageAspectFlags			dsAspectFlags		= VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
-	const VkDeviceSize					depthBufferSize		= params.image.size.width * params.image.size.height * params.image.size.depth * params.image.numLayers * dsImagePixelSize;
+	const VkDeviceSize					depthBufferSize		= static_cast<VkDeviceSize>(deAlignSize(params.image.size.width * params.image.size.height * dsImagePixelSize, static_cast<std::size_t>(alignmentSize)) * params.image.size.depth * params.image.numLayers);
 
 	const VkFormat						stencilBufferFormat	= getStencilBufferFormat(dsFormat);
 	const deUint32						stencilPixelSize	= static_cast<deUint32>(tcu::getPixelSize(mapVkFormat(stencilBufferFormat)));
-	const VkDeviceSize					stencilBufferSize	= params.image.size.width * params.image.size.height * params.image.size.depth * params.image.numLayers * stencilPixelSize;
+	const VkDeviceSize					stencilBufferSize	= static_cast<VkDeviceSize>(deAlignSize( params.image.size.width * params.image.size.height * stencilPixelSize, static_cast<std::size_t>(alignmentSize)) * params.image.size.depth * params.image.numLayers);
 
 	checkImageFormatProperties(vki, physDevice, imageType, VK_IMAGE_TILING_OPTIMAL, dsImageUsage, imageCreateFlags, dsFormat, params.image.size, params.image.numLayers);
 
@@ -1364,7 +1404,7 @@
 				const VkOffset3D				imageOffset				= makeOffset3D(0u, 0u, imageDepth);
 
 				const tcu::Vec4					clearColor				= scaleColor(s_colors[layerNdx % DE_LENGTH_OF_ARRAY(s_colors)], 0.25f);
-				const deUint32					bufferSliceSize			= params.image.size.width * params.image.size.height * colorImagePixelSize;
+				const deUint32					bufferSliceSize			= deAlign32( params.image.size.width * params.image.size.height * colorImagePixelSize, static_cast<deInt32>(alignmentSize));
 				const VkDeviceSize				bufferOffset			= layerNdx * bufferSliceSize;
 				const VkImageSubresourceLayers	imageSubresource		= makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, layer, 1u);
 				const VkBufferImageCopy			bufferImageCopyRegion	= makeBufferImageCopy(bufferOffset, imageSubresource, imageOffset, imageExtent);
@@ -1377,7 +1417,7 @@
 			if (dsUsed)
 			{
 				const float						depthValue				= 1.0f;
-				const deUint32					bufferSliceSize			= params.image.size.width * params.image.size.height * dsImagePixelSize;
+				const deUint32					bufferSliceSize			= deAlign32( params.image.size.width * params.image.size.height * dsImagePixelSize, static_cast<deInt32>(alignmentSize));
 				const VkDeviceSize				bufferOffset			= layerNdx * bufferSliceSize;
 				const VkImageSubresourceLayers	imageSubresource		= makeImageSubresourceLayers(VK_IMAGE_ASPECT_DEPTH_BIT, 0u, layerNdx, 1u);
 				const VkBufferImageCopy			bufferImageCopyRegion	= makeBufferImageCopy(bufferOffset, imageSubresource, makeOffset3D(0u, 0u, 0u), imageExtent);
@@ -1390,7 +1430,7 @@
 			if (dsUsed)
 			{
 				const deUint8					stencilValue			= 0;
-				const deUint32					bufferSliceSize			= params.image.size.width * params.image.size.height * stencilPixelSize;
+				const deUint32					bufferSliceSize			= deAlign32( params.image.size.width * params.image.size.height * stencilPixelSize, static_cast<deInt32>(alignmentSize));
 				const VkDeviceSize				bufferOffset			= layerNdx * bufferSliceSize;
 				const VkImageSubresourceLayers	imageSubresource		= makeImageSubresourceLayers(VK_IMAGE_ASPECT_STENCIL_BIT, 0u, layerNdx, 1u);
 				const VkBufferImageCopy			bufferImageCopyRegion	= makeBufferImageCopy(bufferOffset, imageSubresource, makeOffset3D(0u, 0u, 0u), imageExtent);
@@ -1527,15 +1567,21 @@
 tcu::TestStatus testSecondaryCmdBuffer (Context& context, const TestParams params)
 {
 	const DeviceInterface&				vk					= context.getDeviceInterface();
+	const InstanceInterface&			vki					= context.getInstanceInterface();
 	const VkDevice						device				= context.getDevice();
+	const VkPhysicalDevice				physDevice			= context.getPhysicalDevice();
 	const deUint32						queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
 	const VkQueue						queue				= context.getUniversalQueue();
 	Allocator&							allocator			= context.getDefaultAllocator();
+	VkDeviceSize						nonCoherentAtomSize	= vk::getPhysicalDeviceProperties(vki, physDevice).limits.nonCoherentAtomSize;
+	VkDeviceSize						alignmentSize		= std::max<VkDeviceSize>(nonCoherentAtomSize, 4u);
 
 	const VkFormat						colorFormat			= VK_FORMAT_R8G8B8A8_UNORM;
 	const deUint32						numLayers			= (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? params.image.size.depth : params.image.numLayers);
 	const Vec4							clearColor			= Vec4(0.0f, 0.0f, 0.0f, 1.0f);
-	const VkDeviceSize					colorBufferSize		= params.image.size.width * params.image.size.height * params.image.size.depth * params.image.numLayers * tcu::getPixelSize(mapVkFormat(colorFormat));
+	const deUint32						colorImagePixelSize	= static_cast<deUint32>(tcu::getPixelSize(mapVkFormat(colorFormat)));
+	const VkDeviceSize					colorBufferSize		= static_cast<VkDeviceSize>(deAlignSize(params.image.size.width * params.image.size.height * colorImagePixelSize, static_cast<std::size_t>(alignmentSize)) * params.image.size.depth * params.image.numLayers);
+
 	const VkImageCreateFlags			imageCreateFlags	= (isCubeImageViewType(params.image.viewType) ? VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : (VkImageCreateFlagBits)0) |
 															  (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR : (VkImageCreateFlagBits)0);
 	const VkImageViewType				viewType			= (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : params.image.viewType);
@@ -1639,8 +1685,7 @@
 
 			{
 				const tcu::Vec4					storageImageClearColor	= secondaryCmdBufClearColors[layerNdx % DE_LENGTH_OF_ARRAY(secondaryCmdBufClearColors)];
-				const deUint32					colorImagePixelSize		= static_cast<deUint32>(tcu::getPixelSize(mapVkFormat(colorFormat)));
-				const deUint32					bufferSliceSize			= params.image.size.width * params.image.size.height * colorImagePixelSize;
+				const deUint32					bufferSliceSize			= deAlign32(params.image.size.width * params.image.size.height * colorImagePixelSize, static_cast<deInt32>(alignmentSize));
 				const VkDeviceSize				bufferOffset			= layerNdx * bufferSliceSize;
 				const VkImageSubresourceLayers	imageSubresource		= makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, layer, 1u);
 				const VkBufferImageCopy			bufferImageCopyRegion	= makeBufferImageCopy(bufferOffset, imageSubresource, imageOffset, imageExtent);
@@ -1794,41 +1839,56 @@
 		{ TEST_TYPE_SECONDARY_CMD_BUFFER,			"secondary_cmd_buffer",				"Layered rendering using secondary command buffer"										}
 	};
 
-	const ImageParams imageParams[] =
+	const struct
 	{
-		{ VK_IMAGE_VIEW_TYPE_1D_ARRAY,		{ 64,  1, 1 },	4	},
-		{ VK_IMAGE_VIEW_TYPE_2D_ARRAY,		{ 64, 64, 1 },	4	},
-		{ VK_IMAGE_VIEW_TYPE_CUBE,			{ 64, 64, 1 },	6	},
-		{ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,	{ 64, 64, 1 },	2*6	},
-		{ VK_IMAGE_VIEW_TYPE_3D,			{ 64, 64, 8 },	1	}
+		VkImageViewType	viewType;
+		ImageParams		imageParams[2];
+	} imageParamGroups[] =
+	{
+		{ VK_IMAGE_VIEW_TYPE_1D_ARRAY,		{ { VK_IMAGE_VIEW_TYPE_1D_ARRAY,	{ 64,  1, 1 },	4	},	{ VK_IMAGE_VIEW_TYPE_1D_ARRAY,		{ 12,  1, 1 },	6	} } },
+		{ VK_IMAGE_VIEW_TYPE_2D_ARRAY,		{ { VK_IMAGE_VIEW_TYPE_2D_ARRAY,	{ 64, 64, 1 },	4	},	{ VK_IMAGE_VIEW_TYPE_2D_ARRAY,		{ 12, 36, 1 },	6	} } },
+		{ VK_IMAGE_VIEW_TYPE_CUBE,			{ { VK_IMAGE_VIEW_TYPE_CUBE,		{ 64, 64, 1 },	6	},	{ VK_IMAGE_VIEW_TYPE_CUBE,			{ 36, 36, 1 },	6	} } },
+		{ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,	{ { VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,	{ 64, 64, 1 },	2*6	},	{ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,	{ 36, 36, 1 },	2*6	} } },
+		{ VK_IMAGE_VIEW_TYPE_3D,			{ { VK_IMAGE_VIEW_TYPE_3D,			{ 64, 64, 8 },	1	},	{ VK_IMAGE_VIEW_TYPE_3D,			{ 12, 36, 6 },	1	} } }
 	};
 
-	for (int imageParamNdx = 0; imageParamNdx < DE_LENGTH_OF_ARRAY(imageParams); ++imageParamNdx)
+	for (int imageParamGroupNdx = 0; imageParamGroupNdx < DE_LENGTH_OF_ARRAY(imageParamGroups); ++imageParamGroupNdx)
 	{
-		MovePtr<tcu::TestCaseGroup> viewTypeGroup(new tcu::TestCaseGroup(testCtx, getShortImageViewTypeName(imageParams[imageParamNdx].viewType).c_str(), ""));
+		MovePtr<tcu::TestCaseGroup> viewTypeMainGroup(new tcu::TestCaseGroup(testCtx, getShortImageViewTypeName(imageParamGroups[imageParamGroupNdx].viewType).c_str(), ""));
 
-		for (int testTypeNdx = 0; testTypeNdx < DE_LENGTH_OF_ARRAY(testTypes); ++testTypeNdx)
+		for (int imageParamNdx = 0; imageParamNdx < 2; imageParamNdx++)
 		{
-			TestParams params =
-			{
-				testTypes[testTypeNdx].test,
-				imageParams[imageParamNdx],
-				false
-			};
-
-			if (testTypes[testTypeNdx].test == TEST_TYPE_LAYERED_READBACK)
-				addFunctionCaseWithPrograms(viewTypeGroup.get(), testTypes[testTypeNdx].name, testTypes[testTypeNdx].description, checkSupport, initPrograms, testLayeredReadBack, params);
-			else if (testTypes[testTypeNdx].test == TEST_TYPE_SECONDARY_CMD_BUFFER)
-			{
-				addFunctionCaseWithPrograms(viewTypeGroup.get(), "secondary_cmd_buffer", testTypes[testTypeNdx].description, checkSupport, initPrograms, testSecondaryCmdBuffer, params);
-				params.inheritFramebuffer = true;
-				addFunctionCaseWithPrograms(viewTypeGroup.get(), "secondary_cmd_buffer_inherit_framebuffer", testTypes[testTypeNdx].description, checkSupport, initPrograms, testSecondaryCmdBuffer, params);
-			}
+			std::ostringstream viewTypeGroupName;
+			viewTypeGroupName << imageParamGroups[imageParamGroupNdx].imageParams[imageParamNdx].size.width << "_" << imageParamGroups[imageParamGroupNdx].imageParams[imageParamNdx].size.height << "_";
+			if (imageParamGroups[imageParamGroupNdx].imageParams[imageParamNdx].viewType == VK_IMAGE_VIEW_TYPE_3D)
+				viewTypeGroupName << imageParamGroups[imageParamGroupNdx].imageParams[imageParamNdx].size.depth;
 			else
-				addFunctionCaseWithPrograms(viewTypeGroup.get(), testTypes[testTypeNdx].name, testTypes[testTypeNdx].description, checkSupport, initPrograms, test, params);
-		}
+				viewTypeGroupName << imageParamGroups[imageParamGroupNdx].imageParams[imageParamNdx].numLayers;
+			MovePtr<tcu::TestCaseGroup> viewTypeGroup(new tcu::TestCaseGroup(testCtx, viewTypeGroupName.str().c_str(), ""));
 
-		group->addChild(viewTypeGroup.release());
+			for (int testTypeNdx = 0; testTypeNdx < DE_LENGTH_OF_ARRAY(testTypes); ++testTypeNdx)
+			{
+				TestParams params =
+				{
+					testTypes[testTypeNdx].test,
+					imageParamGroups[imageParamGroupNdx].imageParams[imageParamNdx],
+					false
+				};
+
+				if (testTypes[testTypeNdx].test == TEST_TYPE_LAYERED_READBACK)
+					addFunctionCaseWithPrograms(viewTypeGroup.get(), testTypes[testTypeNdx].name, testTypes[testTypeNdx].description, checkSupport, initPrograms, testLayeredReadBack, params);
+				else if (testTypes[testTypeNdx].test == TEST_TYPE_SECONDARY_CMD_BUFFER)
+				{
+					addFunctionCaseWithPrograms(viewTypeGroup.get(), "secondary_cmd_buffer", testTypes[testTypeNdx].description, checkSupport, initPrograms, testSecondaryCmdBuffer, params);
+					params.inheritFramebuffer = true;
+					addFunctionCaseWithPrograms(viewTypeGroup.get(), "secondary_cmd_buffer_inherit_framebuffer", testTypes[testTypeNdx].description, checkSupport, initPrograms, testSecondaryCmdBuffer, params);
+				}
+				else
+					addFunctionCaseWithPrograms(viewTypeGroup.get(), testTypes[testTypeNdx].name, testTypes[testTypeNdx].description, checkSupport, initPrograms, test, params);
+			}
+			viewTypeMainGroup->addChild(viewTypeGroup.release());
+		}
+		group->addChild(viewTypeMainGroup.release());
 	}
 
 	return group.release();
diff --git a/external/vulkancts/modules/vulkan/image/CMakeLists.txt b/external/vulkancts/modules/vulkan/image/CMakeLists.txt
index 19ba98c..b8d3c45 100644
--- a/external/vulkancts/modules/vulkan/image/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/image/CMakeLists.txt
@@ -9,6 +9,8 @@
 	vktImageAstcDecodeModeTests.hpp
 	vktImageAtomicOperationTests.cpp
 	vktImageAtomicOperationTests.hpp
+	vktImageAtomicSpirvShaders.cpp
+	vktImageAtomicSpirvShaders.hpp
 	vktImageLoadStoreTests.cpp
 	vktImageLoadStoreTests.hpp
 	vktImageMutableTests.cpp
diff --git a/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp
index 66d9265..a6e624b 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp
@@ -22,6 +22,7 @@
  *//*--------------------------------------------------------------------*/
 
 #include "vktImageAtomicOperationTests.hpp"
+#include "vktImageAtomicSpirvShaders.hpp"
 
 #include "deUniquePtr.hpp"
 #include "deStringUtil.hpp"
@@ -41,6 +42,7 @@
 #include "tcuTextureUtil.hpp"
 #include "tcuTexture.hpp"
 #include "tcuVectorType.hpp"
+#include "tcuStringTemplate.hpp"
 
 namespace vkt
 {
@@ -79,6 +81,9 @@
 enum AtomicOperation
 {
 	ATOMIC_OPERATION_ADD = 0,
+	ATOMIC_OPERATION_SUB,
+	ATOMIC_OPERATION_INC,
+	ATOMIC_OPERATION_DEC,
 	ATOMIC_OPERATION_MIN,
 	ATOMIC_OPERATION_MAX,
 	ATOMIC_OPERATION_AND,
@@ -146,6 +151,9 @@
 	switch (op)
 	{
 		case ATOMIC_OPERATION_ADD:				return string("add");
+		case ATOMIC_OPERATION_SUB:				return string("sub");
+		case ATOMIC_OPERATION_INC:				return string("inc");
+		case ATOMIC_OPERATION_DEC:				return string("dec");
 		case ATOMIC_OPERATION_MIN:				return string("min");
 		case ATOMIC_OPERATION_MAX:				return string("max");
 		case ATOMIC_OPERATION_AND:				return string("and");
@@ -183,6 +191,9 @@
 	{
 		// \note 18 is just an arbitrary small nonzero value.
 		case ATOMIC_OPERATION_ADD:				return 18;
+		case ATOMIC_OPERATION_INC:				return 18;
+		case ATOMIC_OPERATION_SUB:				return (1 << 24) - 1;
+		case ATOMIC_OPERATION_DEC:				return (1 << 24) - 1;
 		case ATOMIC_OPERATION_MIN:				return (1 << 15) - 1;
 		case ATOMIC_OPERATION_MAX:				return 18;
 		case ATOMIC_OPERATION_AND:				return (1 << 15) - 1;
@@ -209,10 +220,14 @@
 	{
 		// \note Fall-throughs.
 		case ATOMIC_OPERATION_ADD:
+		case ATOMIC_OPERATION_SUB:
 		case ATOMIC_OPERATION_AND:
 		case ATOMIC_OPERATION_OR:
 		case ATOMIC_OPERATION_XOR:
 			return x*x + y*y + z*z;
+		case ATOMIC_OPERATION_INC:
+		case ATOMIC_OPERATION_DEC:
+			return 1;
 		case ATOMIC_OPERATION_MIN:
 		case ATOMIC_OPERATION_MAX:
 			// multiply half of the data by -1
@@ -230,6 +245,9 @@
 static bool isOrderIndependentAtomicOperation (const AtomicOperation op)
 {
 	return	op == ATOMIC_OPERATION_ADD ||
+			op == ATOMIC_OPERATION_SUB ||
+			op == ATOMIC_OPERATION_INC ||
+			op == ATOMIC_OPERATION_DEC ||
 			op == ATOMIC_OPERATION_MIN ||
 			op == ATOMIC_OPERATION_MAX ||
 			op == ATOMIC_OPERATION_AND ||
@@ -237,13 +255,54 @@
 			op == ATOMIC_OPERATION_XOR;
 }
 
+//! Checks if the operation needs an SPIR-V shader.
+static bool isSpirvAtomicOperation (const AtomicOperation op)
+{
+	return	op == ATOMIC_OPERATION_SUB ||
+			op == ATOMIC_OPERATION_INC ||
+			op == ATOMIC_OPERATION_DEC;
+}
+
+//! Returns the SPIR-V assembler name of the given operation.
+static std::string getSpirvAtomicOpName (const AtomicOperation op)
+{
+	switch (op)
+	{
+	case ATOMIC_OPERATION_SUB:	return "OpAtomicISub";
+	case ATOMIC_OPERATION_INC:	return "OpAtomicIIncrement";
+	case ATOMIC_OPERATION_DEC:	return "OpAtomicIDecrement";
+	default:					break;
+	}
+
+	DE_ASSERT(false);
+	return "";
+}
+
+//! Returns true if the given SPIR-V operation does not need the last argument, compared to OpAtomicIAdd.
+static bool isSpirvAtomicNoLastArgOp (const AtomicOperation op)
+{
+	switch (op)
+	{
+	case ATOMIC_OPERATION_SUB:	return false;
+	case ATOMIC_OPERATION_INC:	// fallthrough
+	case ATOMIC_OPERATION_DEC:	return true;
+	default:					break;
+	}
+
+	DE_ASSERT(false);
+	return false;
+}
+
 //! Computes the result of an atomic operation where "a" is the data operated on and "b" is the parameter to the atomic function.
 template <typename T>
 static T computeBinaryAtomicOperationResult (const AtomicOperation op, const T a, const T b)
 {
 	switch (op)
 	{
+		case ATOMIC_OPERATION_INC:				// fallthrough.
 		case ATOMIC_OPERATION_ADD:				return a + b;
+		case ATOMIC_OPERATION_DEC:				// fallthrough.
+		case ATOMIC_OPERATION_SUB:				return a - b;
 		case ATOMIC_OPERATION_MIN:				return de::min(a, b);
 		case ATOMIC_OPERATION_MAX:				return de::max(a, b);
 		case ATOMIC_OPERATION_AND:				return a & b;
@@ -306,36 +365,51 @@
 
 void BinaryAtomicEndResultCase::initPrograms (SourceCollections& sourceCollections) const
 {
-	const string	versionDecl				= glu::getGLSLVersionDeclaration(m_glslVersion);
+	if (isSpirvAtomicOperation(m_operation))
+	{
+		const CaseVariant					caseVariant{m_imageType, m_format.order, m_format.type, CaseVariant::CHECK_TYPE_END_RESULTS};
+		const tcu::StringTemplate			shaderTemplate{getSpirvAtomicOpShader(caseVariant)};
+		std::map<std::string, std::string>	specializations;
 
-	const bool		uintFormat				= isUintFormat(mapTextureFormat(m_format));
-	const bool		intFormat				= isIntFormat(mapTextureFormat(m_format));
-	const UVec3		gridSize				= getShaderGridSize(m_imageType, m_imageSize);
-	const string	atomicCoord				= getCoordStr(m_imageType, "gx % " + toString(gridSize.x()), "gy", "gz");
+		specializations["OPNAME"] = getSpirvAtomicOpName(m_operation);
+		if (isSpirvAtomicNoLastArgOp(m_operation))
+			specializations["LASTARG"] = "";
 
-	const string	atomicArgExpr			= (uintFormat ? "uint" : intFormat ? "int" : "float")
-											+ getAtomicFuncArgumentShaderStr(m_operation, "gx", "gy", "gz", IVec3(NUM_INVOCATIONS_PER_PIXEL*gridSize.x(), gridSize.y(), gridSize.z()));
+		sourceCollections.spirvAsmSources.add(m_name) << shaderTemplate.specialize(specializations);
+	}
+	else
+	{
+		const string	versionDecl				= glu::getGLSLVersionDeclaration(m_glslVersion);
 
-	const string	compareExchangeStr		= (m_operation == ATOMIC_OPERATION_COMPARE_EXCHANGE) ? ", 18" + string(uintFormat ? "u" : "") : "";
-	const string	atomicInvocation		= getAtomicOperationShaderFuncName(m_operation) + "(u_resultImage, " + atomicCoord + compareExchangeStr + ", " + atomicArgExpr + ")";
-	const string	shaderImageFormatStr	= getShaderImageFormatQualifier(m_format);
-	const string	shaderImageTypeStr		= getShaderImageType(m_format, m_imageType);
+		const bool		uintFormat				= isUintFormat(mapTextureFormat(m_format));
+		const bool		intFormat				= isIntFormat(mapTextureFormat(m_format));
+		const UVec3		gridSize				= getShaderGridSize(m_imageType, m_imageSize);
+		const string	atomicCoord				= getCoordStr(m_imageType, "gx % " + toString(gridSize.x()), "gy", "gz");
 
-	string source = versionDecl + "\n"
-					"precision highp " + shaderImageTypeStr + ";\n"
-					"\n"
-					"layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n"
-					"layout (" + shaderImageFormatStr + ", binding=0) coherent uniform " + shaderImageTypeStr + " u_resultImage;\n"
-					"\n"
-					"void main (void)\n"
-					"{\n"
-					"	int gx = int(gl_GlobalInvocationID.x);\n"
-					"	int gy = int(gl_GlobalInvocationID.y);\n"
-					"	int gz = int(gl_GlobalInvocationID.z);\n"
-					"	" + atomicInvocation + ";\n"
-					"}\n";
+		const string	atomicArgExpr			= (uintFormat ? "uint" : intFormat ? "int" : "float")
+												+ getAtomicFuncArgumentShaderStr(m_operation, "gx", "gy", "gz", IVec3(NUM_INVOCATIONS_PER_PIXEL*gridSize.x(), gridSize.y(), gridSize.z()));
 
-	sourceCollections.glslSources.add(m_name) << glu::ComputeSource(source.c_str());
+		const string	compareExchangeStr		= (m_operation == ATOMIC_OPERATION_COMPARE_EXCHANGE) ? ", 18" + string(uintFormat ? "u" : "") : "";
+		const string	atomicInvocation		= getAtomicOperationShaderFuncName(m_operation) + "(u_resultImage, " + atomicCoord + compareExchangeStr + ", " + atomicArgExpr + ")";
+		const string	shaderImageFormatStr	= getShaderImageFormatQualifier(m_format);
+		const string	shaderImageTypeStr		= getShaderImageType(m_format, m_imageType);
+
+		string source = versionDecl + "\n"
+						"precision highp " + shaderImageTypeStr + ";\n"
+						"\n"
+						"layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n"
+						"layout (" + shaderImageFormatStr + ", binding=0) coherent uniform " + shaderImageTypeStr + " u_resultImage;\n"
+						"\n"
+						"void main (void)\n"
+						"{\n"
+						"	int gx = int(gl_GlobalInvocationID.x);\n"
+						"	int gy = int(gl_GlobalInvocationID.y);\n"
+						"	int gz = int(gl_GlobalInvocationID.z);\n"
+						"	" + atomicInvocation + ";\n"
+						"}\n";
+
+		sourceCollections.glslSources.add(m_name) << glu::ComputeSource(source.c_str());
+	}
 }
 
 class BinaryAtomicIntermValuesCase : public vkt::TestCase
@@ -387,38 +461,53 @@
 
 void BinaryAtomicIntermValuesCase::initPrograms (SourceCollections& sourceCollections) const
 {
-	const string	versionDecl				= glu::getGLSLVersionDeclaration(m_glslVersion);
+	if (isSpirvAtomicOperation(m_operation))
+	{
+		const CaseVariant					caseVariant{m_imageType, m_format.order, m_format.type, CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS};
+		const tcu::StringTemplate			shaderTemplate{getSpirvAtomicOpShader(caseVariant)};
+		std::map<std::string, std::string>	specializations;
 
-	const bool		uintFormat				= isUintFormat(mapTextureFormat(m_format));
-	const bool		intFormat				= isIntFormat(mapTextureFormat(m_format));
-	const string	colorVecTypeName		= string(uintFormat ? "u" : intFormat ? "i" : "") + "vec4";
-	const UVec3		gridSize				= getShaderGridSize(m_imageType, m_imageSize);
-	const string	atomicCoord				= getCoordStr(m_imageType, "gx % " + toString(gridSize.x()), "gy", "gz");
-	const string	invocationCoord			= getCoordStr(m_imageType, "gx", "gy", "gz");
-	const string	atomicArgExpr			= (uintFormat ? "uint" : intFormat ? "int" : "float")
-											+ getAtomicFuncArgumentShaderStr(m_operation, "gx", "gy", "gz", IVec3(NUM_INVOCATIONS_PER_PIXEL*gridSize.x(), gridSize.y(), gridSize.z()));
+		specializations["OPNAME"] = getSpirvAtomicOpName(m_operation);
+		if (isSpirvAtomicNoLastArgOp(m_operation))
+			specializations["LASTARG"] = "";
 
-	const string	compareExchangeStr		= (m_operation == ATOMIC_OPERATION_COMPARE_EXCHANGE) ? ", 18" + string(uintFormat ? "u" : "")  : "";
-	const string	atomicInvocation		= getAtomicOperationShaderFuncName(m_operation) + "(u_resultImage, " + atomicCoord + compareExchangeStr + ", " + atomicArgExpr + ")";
-	const string	shaderImageFormatStr	= getShaderImageFormatQualifier(m_format);
-	const string	shaderImageTypeStr		= getShaderImageType(m_format, m_imageType);
+		sourceCollections.spirvAsmSources.add(m_name) << shaderTemplate.specialize(specializations);
+	}
+	else
+	{
+		const string	versionDecl				= glu::getGLSLVersionDeclaration(m_glslVersion);
 
-	string source = versionDecl + "\n"
-					"precision highp " + shaderImageTypeStr + ";\n"
-					"\n"
-					"layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n"
-					"layout (" + shaderImageFormatStr + ", binding=0) coherent uniform " + shaderImageTypeStr + " u_resultImage;\n"
-					"layout (" + shaderImageFormatStr + ", binding=1) writeonly uniform " + shaderImageTypeStr + " u_intermValuesImage;\n"
-					"\n"
-					"void main (void)\n"
-					"{\n"
-					"	int gx = int(gl_GlobalInvocationID.x);\n"
-					"	int gy = int(gl_GlobalInvocationID.y);\n"
-					"	int gz = int(gl_GlobalInvocationID.z);\n"
-					"	imageStore(u_intermValuesImage, " + invocationCoord + ", " + colorVecTypeName + "(" + atomicInvocation + "));\n"
-					"}\n";
+		const bool		uintFormat				= isUintFormat(mapTextureFormat(m_format));
+		const bool		intFormat				= isIntFormat(mapTextureFormat(m_format));
+		const string	colorVecTypeName		= string(uintFormat ? "u" : intFormat ? "i" : "") + "vec4";
+		const UVec3		gridSize				= getShaderGridSize(m_imageType, m_imageSize);
+		const string	atomicCoord				= getCoordStr(m_imageType, "gx % " + toString(gridSize.x()), "gy", "gz");
+		const string	invocationCoord			= getCoordStr(m_imageType, "gx", "gy", "gz");
+		const string	atomicArgExpr			= (uintFormat ? "uint" : intFormat ? "int" : "float")
+												+ getAtomicFuncArgumentShaderStr(m_operation, "gx", "gy", "gz", IVec3(NUM_INVOCATIONS_PER_PIXEL*gridSize.x(), gridSize.y(), gridSize.z()));
 
-	sourceCollections.glslSources.add(m_name) << glu::ComputeSource(source.c_str());
+		const string	compareExchangeStr		= (m_operation == ATOMIC_OPERATION_COMPARE_EXCHANGE) ? ", 18" + string(uintFormat ? "u" : "")  : "";
+		const string	atomicInvocation		= getAtomicOperationShaderFuncName(m_operation) + "(u_resultImage, " + atomicCoord + compareExchangeStr + ", " + atomicArgExpr + ")";
+		const string	shaderImageFormatStr	= getShaderImageFormatQualifier(m_format);
+		const string	shaderImageTypeStr		= getShaderImageType(m_format, m_imageType);
+
+		string source = versionDecl + "\n"
+						"precision highp " + shaderImageTypeStr + ";\n"
+						"\n"
+						"layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n"
+						"layout (" + shaderImageFormatStr + ", binding=0) coherent uniform " + shaderImageTypeStr + " u_resultImage;\n"
+						"layout (" + shaderImageFormatStr + ", binding=1) writeonly uniform " + shaderImageTypeStr + " u_intermValuesImage;\n"
+						"\n"
+						"void main (void)\n"
+						"{\n"
+						"	int gx = int(gl_GlobalInvocationID.x);\n"
+						"	int gy = int(gl_GlobalInvocationID.y);\n"
+						"	int gz = int(gl_GlobalInvocationID.z);\n"
+						"	imageStore(u_intermValuesImage, " + invocationCoord + ", " + colorVecTypeName + "(" + atomicInvocation + "));\n"
+						"}\n";
+
+		sourceCollections.glslSources.add(m_name) << glu::ComputeSource(source.c_str());
+	}
 }
 
 class BinaryAtomicInstanceBase : public vkt::TestInstance
diff --git a/external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.cpp b/external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.cpp
new file mode 100644
index 0000000..59da84e
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.cpp
@@ -0,0 +1,2903 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Valve Corporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * 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 Helper SPIR-V shaders for some image atomic operations.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktImageAtomicSpirvShaders.hpp"
+
+#include <array>
+#include <map>
+
+namespace vkt
+{
+namespace image
+{
+
+namespace
+{
+
+const std::string kShader_1d_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage1D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage1D u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, gx % 64, uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 50
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %49 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 1D 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%46 = OpTypePointer Image %9
+%49 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %8
+%35 = OpLoad %6 %8
+%36 = OpIMul %6 %34 %35
+%37 = OpLoad %6 %18
+%38 = OpLoad %6 %18
+%39 = OpIMul %6 %37 %38
+%40 = OpIAdd %6 %36 %39
+%41 = OpLoad %6 %23
+%42 = OpLoad %6 %23
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpBitcast %9 %44
+%47 = OpImageTexelPointer %46 %30 %33 %13
+%48 = ${OPNAME} %9 %47 %19 %13 ${LASTARG:default=%45}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage1D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage1D u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimage1D u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, gx, uvec4(imageAtomicAdd(u_resultImage, gx % 64, uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 55
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %33 DescriptorSet 0
+OpDecorate %33 Binding 0
+OpDecorate %33 Coherent
+OpDecorate %54 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 1D 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%33 = OpVariable %29 UniformConstant
+%35 = OpConstant %6 64
+%49 = OpTypePointer Image %9
+%52 = OpTypeVector %9 4
+%54 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%34 = OpLoad %6 %8
+%36 = OpSMod %6 %34 %35
+%37 = OpLoad %6 %8
+%38 = OpLoad %6 %8
+%39 = OpIMul %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpLoad %6 %18
+%42 = OpIMul %6 %40 %41
+%43 = OpIAdd %6 %39 %42
+%44 = OpLoad %6 %23
+%45 = OpLoad %6 %23
+%46 = OpIMul %6 %44 %45
+%47 = OpIAdd %6 %43 %46
+%48 = OpBitcast %9 %47
+%50 = OpImageTexelPointer %49 %33 %36 %13
+%51 = ${OPNAME} %9 %50 %19 %13 ${LASTARG:default=%48}
+%53 = OpCompositeConstruct %52 %51 %51 %51 %51
+OpImageWrite %31 %32 %53
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage1D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage1D u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, gx % 64, int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 49
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %48 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 1D 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%45 = OpTypePointer Image %6
+%48 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %8
+%35 = OpLoad %6 %8
+%36 = OpIMul %6 %34 %35
+%37 = OpLoad %6 %18
+%38 = OpLoad %6 %18
+%39 = OpIMul %6 %37 %38
+%40 = OpIAdd %6 %36 %39
+%41 = OpLoad %6 %23
+%42 = OpLoad %6 %23
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%46 = OpImageTexelPointer %45 %30 %33 %13
+%47 = ${OPNAME} %6 %46 %19 %13 ${LASTARG:default=%44}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage1D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage1D u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimage1D u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, gx, ivec4(imageAtomicAdd(u_resultImage, gx % 64, int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 54
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %33 DescriptorSet 0
+OpDecorate %33 Binding 0
+OpDecorate %33 Coherent
+OpDecorate %53 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 1D 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%33 = OpVariable %29 UniformConstant
+%35 = OpConstant %6 64
+%48 = OpTypePointer Image %6
+%51 = OpTypeVector %6 4
+%53 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%34 = OpLoad %6 %8
+%36 = OpSMod %6 %34 %35
+%37 = OpLoad %6 %8
+%38 = OpLoad %6 %8
+%39 = OpIMul %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpLoad %6 %18
+%42 = OpIMul %6 %40 %41
+%43 = OpIAdd %6 %39 %42
+%44 = OpLoad %6 %23
+%45 = OpLoad %6 %23
+%46 = OpIMul %6 %44 %45
+%47 = OpIAdd %6 %43 %46
+%49 = OpImageTexelPointer %48 %33 %36 %13
+%50 = ${OPNAME} %6 %49 %19 %13 ${LASTARG:default=%47}
+%52 = OpCompositeConstruct %51 %50 %50 %50 %50
+OpImageWrite %31 %32 %52
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_array_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage1DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage1DArray u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 53
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %52 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 1D 0 1 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%35 = OpTypeVector %6 2
+%49 = OpTypePointer Image %9
+%52 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%36 = OpCompositeConstruct %35 %33 %34
+%37 = OpLoad %6 %8
+%38 = OpLoad %6 %8
+%39 = OpIMul %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpLoad %6 %18
+%42 = OpIMul %6 %40 %41
+%43 = OpIAdd %6 %39 %42
+%44 = OpLoad %6 %23
+%45 = OpLoad %6 %23
+%46 = OpIMul %6 %44 %45
+%47 = OpIAdd %6 %43 %46
+%48 = OpBitcast %9 %47
+%50 = OpImageTexelPointer %49 %30 %36 %13
+%51 = ${OPNAME} %9 %50 %19 %13 ${LASTARG:default=%48}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_array_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage1DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage1DArray u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimage1DArray u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec2(gx,gy), uvec4(imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 60
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %36 DescriptorSet 0
+OpDecorate %36 Binding 0
+OpDecorate %36 Coherent
+OpDecorate %59 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 1D 0 1 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%34 = OpTypeVector %6 2
+%36 = OpVariable %29 UniformConstant
+%38 = OpConstant %6 64
+%54 = OpTypePointer Image %9
+%57 = OpTypeVector %9 4
+%59 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%35 = OpCompositeConstruct %34 %32 %33
+%37 = OpLoad %6 %8
+%39 = OpSMod %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpCompositeConstruct %34 %39 %40
+%42 = OpLoad %6 %8
+%43 = OpLoad %6 %8
+%44 = OpIMul %6 %42 %43
+%45 = OpLoad %6 %18
+%46 = OpLoad %6 %18
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpLoad %6 %23
+%50 = OpLoad %6 %23
+%51 = OpIMul %6 %49 %50
+%52 = OpIAdd %6 %48 %51
+%53 = OpBitcast %9 %52
+%55 = OpImageTexelPointer %54 %36 %41 %13
+%56 = ${OPNAME} %9 %55 %19 %13 ${LASTARG:default=%53}
+%58 = OpCompositeConstruct %57 %56 %56 %56 %56
+OpImageWrite %31 %35 %58
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_array_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage1DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage1DArray u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 52
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %51 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 1D 0 1 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%35 = OpTypeVector %6 2
+%48 = OpTypePointer Image %6
+%51 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%36 = OpCompositeConstruct %35 %33 %34
+%37 = OpLoad %6 %8
+%38 = OpLoad %6 %8
+%39 = OpIMul %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpLoad %6 %18
+%42 = OpIMul %6 %40 %41
+%43 = OpIAdd %6 %39 %42
+%44 = OpLoad %6 %23
+%45 = OpLoad %6 %23
+%46 = OpIMul %6 %44 %45
+%47 = OpIAdd %6 %43 %46
+%49 = OpImageTexelPointer %48 %30 %36 %13
+%50 = ${OPNAME} %6 %49 %19 %13 ${LASTARG:default=%47}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_1d_array_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage1DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage1DArray u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimage1DArray u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec2(gx,gy), ivec4(imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 59
+; Schema: 0
+OpCapability Shader
+OpCapability Image1D
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %36 DescriptorSet 0
+OpDecorate %36 Binding 0
+OpDecorate %36 Coherent
+OpDecorate %58 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 1D 0 1 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%34 = OpTypeVector %6 2
+%36 = OpVariable %29 UniformConstant
+%38 = OpConstant %6 64
+%53 = OpTypePointer Image %6
+%56 = OpTypeVector %6 4
+%58 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%35 = OpCompositeConstruct %34 %32 %33
+%37 = OpLoad %6 %8
+%39 = OpSMod %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpCompositeConstruct %34 %39 %40
+%42 = OpLoad %6 %8
+%43 = OpLoad %6 %8
+%44 = OpIMul %6 %42 %43
+%45 = OpLoad %6 %18
+%46 = OpLoad %6 %18
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpLoad %6 %23
+%50 = OpLoad %6 %23
+%51 = OpIMul %6 %49 %50
+%52 = OpIAdd %6 %48 %51
+%54 = OpImageTexelPointer %53 %36 %41 %13
+%55 = ${OPNAME} %6 %54 %19 %13 ${LASTARG:default=%52}
+%57 = OpCompositeConstruct %56 %55 %55 %55 %55
+OpImageWrite %31 %35 %57
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage2D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage2D u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 53
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %52 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 2D 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%35 = OpTypeVector %6 2
+%49 = OpTypePointer Image %9
+%52 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%36 = OpCompositeConstruct %35 %33 %34
+%37 = OpLoad %6 %8
+%38 = OpLoad %6 %8
+%39 = OpIMul %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpLoad %6 %18
+%42 = OpIMul %6 %40 %41
+%43 = OpIAdd %6 %39 %42
+%44 = OpLoad %6 %23
+%45 = OpLoad %6 %23
+%46 = OpIMul %6 %44 %45
+%47 = OpIAdd %6 %43 %46
+%48 = OpBitcast %9 %47
+%50 = OpImageTexelPointer %49 %30 %36 %13
+%51 = ${OPNAME} %9 %50 %19 %13 ${LASTARG:default=%48}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage2D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage2D u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimage2D u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec2(gx,gy), uvec4(imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 60
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %36 DescriptorSet 0
+OpDecorate %36 Binding 0
+OpDecorate %36 Coherent
+OpDecorate %59 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 2D 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%34 = OpTypeVector %6 2
+%36 = OpVariable %29 UniformConstant
+%38 = OpConstant %6 64
+%54 = OpTypePointer Image %9
+%57 = OpTypeVector %9 4
+%59 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%35 = OpCompositeConstruct %34 %32 %33
+%37 = OpLoad %6 %8
+%39 = OpSMod %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpCompositeConstruct %34 %39 %40
+%42 = OpLoad %6 %8
+%43 = OpLoad %6 %8
+%44 = OpIMul %6 %42 %43
+%45 = OpLoad %6 %18
+%46 = OpLoad %6 %18
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpLoad %6 %23
+%50 = OpLoad %6 %23
+%51 = OpIMul %6 %49 %50
+%52 = OpIAdd %6 %48 %51
+%53 = OpBitcast %9 %52
+%55 = OpImageTexelPointer %54 %36 %41 %13
+%56 = ${OPNAME} %9 %55 %19 %13 ${LASTARG:default=%53}
+%58 = OpCompositeConstruct %57 %56 %56 %56 %56
+OpImageWrite %31 %35 %58
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage2D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage2D u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 52
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %51 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 2D 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%35 = OpTypeVector %6 2
+%48 = OpTypePointer Image %6
+%51 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%36 = OpCompositeConstruct %35 %33 %34
+%37 = OpLoad %6 %8
+%38 = OpLoad %6 %8
+%39 = OpIMul %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpLoad %6 %18
+%42 = OpIMul %6 %40 %41
+%43 = OpIAdd %6 %39 %42
+%44 = OpLoad %6 %23
+%45 = OpLoad %6 %23
+%46 = OpIMul %6 %44 %45
+%47 = OpIAdd %6 %43 %46
+%49 = OpImageTexelPointer %48 %30 %36 %13
+%50 = ${OPNAME} %6 %49 %19 %13 ${LASTARG:default=%47}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage2D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage2D u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimage2D u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec2(gx,gy), ivec4(imageAtomicAdd(u_resultImage, ivec2(gx % 64,gy), int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 59
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %36 DescriptorSet 0
+OpDecorate %36 Binding 0
+OpDecorate %36 Coherent
+OpDecorate %58 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 2D 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%34 = OpTypeVector %6 2
+%36 = OpVariable %29 UniformConstant
+%38 = OpConstant %6 64
+%53 = OpTypePointer Image %6
+%56 = OpTypeVector %6 4
+%58 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%35 = OpCompositeConstruct %34 %32 %33
+%37 = OpLoad %6 %8
+%39 = OpSMod %6 %37 %38
+%40 = OpLoad %6 %18
+%41 = OpCompositeConstruct %34 %39 %40
+%42 = OpLoad %6 %8
+%43 = OpLoad %6 %8
+%44 = OpIMul %6 %42 %43
+%45 = OpLoad %6 %18
+%46 = OpLoad %6 %18
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpLoad %6 %23
+%50 = OpLoad %6 %23
+%51 = OpIMul %6 %49 %50
+%52 = OpIAdd %6 %48 %51
+%54 = OpImageTexelPointer %53 %36 %41 %13
+%55 = ${OPNAME} %6 %54 %19 %13 ${LASTARG:default=%52}
+%57 = OpCompositeConstruct %56 %55 %55 %55 %55
+OpImageWrite %31 %35 %57
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_array_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage2DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage2DArray u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 54
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %53 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 2D 0 1 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%50 = OpTypePointer Image %9
+%53 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpBitcast %9 %48
+%51 = OpImageTexelPointer %50 %30 %37 %13
+%52 = ${OPNAME} %9 %51 %19 %13 ${LASTARG:default=%49}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_array_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage2DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage2DArray u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimage2DArray u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), uvec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 62
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %61 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 2D 0 1 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%56 = OpTypePointer Image %9
+%59 = OpTypeVector %9 4
+%61 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%55 = OpBitcast %9 %54
+%57 = OpImageTexelPointer %56 %37 %43 %13
+%58 = ${OPNAME} %9 %57 %19 %13 ${LASTARG:default=%55}
+%60 = OpCompositeConstruct %59 %58 %58 %58 %58
+OpImageWrite %31 %36 %60
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_array_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage2DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage2DArray u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 53
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %52 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 2D 0 1 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%49 = OpTypePointer Image %6
+%52 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%50 = OpImageTexelPointer %49 %30 %37 %13
+%51 = ${OPNAME} %6 %50 %19 %13 ${LASTARG:default=%48}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_2d_array_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage2DArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage2DArray u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimage2DArray u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), ivec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 61
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %60 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 2D 0 1 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%55 = OpTypePointer Image %6
+%58 = OpTypeVector %6 4
+%60 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%56 = OpImageTexelPointer %55 %37 %43 %13
+%57 = ${OPNAME} %6 %56 %19 %13 ${LASTARG:default=%54}
+%59 = OpCompositeConstruct %58 %57 %57 %57 %57
+OpImageWrite %31 %36 %59
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_3d_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage3D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage3D u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 54
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %53 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 3D 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%50 = OpTypePointer Image %9
+%53 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpBitcast %9 %48
+%51 = OpImageTexelPointer %50 %30 %37 %13
+%52 = ${OPNAME} %9 %51 %19 %13 ${LASTARG:default=%49}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_3d_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimage3D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimage3D u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimage3D u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), uvec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 62
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %61 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 3D 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%56 = OpTypePointer Image %9
+%59 = OpTypeVector %9 4
+%61 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%55 = OpBitcast %9 %54
+%57 = OpImageTexelPointer %56 %37 %43 %13
+%58 = ${OPNAME} %9 %57 %19 %13 ${LASTARG:default=%55}
+%60 = OpCompositeConstruct %59 %58 %58 %58 %58
+OpImageWrite %31 %36 %60
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_3d_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage3D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage3D u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 53
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %52 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 3D 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%49 = OpTypePointer Image %6
+%52 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%50 = OpImageTexelPointer %49 %30 %37 %13
+%51 = ${OPNAME} %6 %50 %19 %13 ${LASTARG:default=%48}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_3d_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimage3D;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimage3D u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimage3D u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), ivec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 61
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %60 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 3D 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%55 = OpTypePointer Image %6
+%58 = OpTypeVector %6 4
+%60 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%56 = OpImageTexelPointer %55 %37 %43 %13
+%57 = ${OPNAME} %6 %56 %19 %13 ${LASTARG:default=%54}
+%59 = OpCompositeConstruct %58 %57 %57 %57 %57
+OpImageWrite %31 %36 %59
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimageCube;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimageCube u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 54
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %53 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 Cube 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%50 = OpTypePointer Image %9
+%53 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpBitcast %9 %48
+%51 = OpImageTexelPointer %50 %30 %37 %13
+%52 = ${OPNAME} %9 %51 %19 %13 ${LASTARG:default=%49}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimageCube;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimageCube u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimageCube u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), uvec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 62
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %61 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 Cube 0 0 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%56 = OpTypePointer Image %9
+%59 = OpTypeVector %9 4
+%61 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%55 = OpBitcast %9 %54
+%57 = OpImageTexelPointer %56 %37 %43 %13
+%58 = ${OPNAME} %9 %57 %19 %13 ${LASTARG:default=%55}
+%60 = OpCompositeConstruct %59 %58 %58 %58 %58
+OpImageWrite %31 %36 %60
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimageCube;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimageCube u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 53
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %52 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 Cube 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%49 = OpTypePointer Image %6
+%52 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%50 = OpImageTexelPointer %49 %30 %37 %13
+%51 = ${OPNAME} %6 %50 %19 %13 ${LASTARG:default=%48}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimageCube;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimageCube u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimageCube u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), ivec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 61
+; Schema: 0
+OpCapability Shader
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %60 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 Cube 0 0 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%55 = OpTypePointer Image %6
+%58 = OpTypeVector %6 4
+%60 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%56 = OpImageTexelPointer %55 %37 %43 %13
+%57 = ${OPNAME} %6 %56 %19 %13 ${LASTARG:default=%54}
+%59 = OpCompositeConstruct %58 %57 %57 %57 %57
+OpImageWrite %31 %36 %59
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_array_r32ui_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimageCubeArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimageCubeArray u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 54
+; Schema: 0
+OpCapability Shader
+OpCapability ImageCubeArray
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %53 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 Cube 0 1 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%50 = OpTypePointer Image %9
+%53 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%49 = OpBitcast %9 %48
+%51 = OpImageTexelPointer %50 %30 %37 %13
+%52 = ${OPNAME} %9 %51 %19 %13 ${LASTARG:default=%49}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_array_r32ui_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp uimageCubeArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32ui, binding=0) coherent uniform uimageCubeArray u_resultImage;
+; layout (r32ui, binding=1) writeonly uniform uimageCubeArray u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), uvec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), uint(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 62
+; Schema: 0
+OpCapability Shader
+OpCapability ImageCubeArray
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %61 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %9 Cube 0 1 0 2 R32ui
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%56 = OpTypePointer Image %9
+%59 = OpTypeVector %9 4
+%61 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%55 = OpBitcast %9 %54
+%57 = OpImageTexelPointer %56 %37 %43 %13
+%58 = ${OPNAME} %9 %57 %19 %13 ${LASTARG:default=%55}
+%60 = OpCompositeConstruct %59 %58 %58 %58 %58
+OpImageWrite %31 %36 %60
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_array_r32i_end_result = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimageCubeArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimageCubeArray u_resultImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 53
+; Schema: 0
+OpCapability Shader
+OpCapability ImageCubeArray
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 0
+OpDecorate %30 Coherent
+OpDecorate %52 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 Cube 0 1 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%32 = OpConstant %6 64
+%36 = OpTypeVector %6 3
+%49 = OpTypePointer Image %6
+%52 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %6 %8
+%33 = OpSMod %6 %31 %32
+%34 = OpLoad %6 %18
+%35 = OpLoad %6 %23
+%37 = OpCompositeConstruct %36 %33 %34 %35
+%38 = OpLoad %6 %8
+%39 = OpLoad %6 %8
+%40 = OpIMul %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %18
+%43 = OpIMul %6 %41 %42
+%44 = OpIAdd %6 %40 %43
+%45 = OpLoad %6 %23
+%46 = OpLoad %6 %23
+%47 = OpIMul %6 %45 %46
+%48 = OpIAdd %6 %44 %47
+%50 = OpImageTexelPointer %49 %30 %37 %13
+%51 = ${OPNAME} %6 %50 %19 %13 ${LASTARG:default=%48}
+OpReturn
+OpFunctionEnd
+)";
+
+const std::string kShader_cube_array_r32i_intermediate_values = R"(
+; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been
+; replaced with a template parameter and the last argument for it has been made optional.
+;
+; #version 440
+; precision highp iimageCubeArray;
+;
+; layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+; layout (r32i, binding=0) coherent uniform iimageCubeArray u_resultImage;
+; layout (r32i, binding=1) writeonly uniform iimageCubeArray u_intermValuesImage;
+;
+; void main (void)
+; {
+;     int gx = int(gl_GlobalInvocationID.x);
+;     int gy = int(gl_GlobalInvocationID.y);
+;     int gz = int(gl_GlobalInvocationID.z);
+;     imageStore(u_intermValuesImage, ivec3(gx,gy,gz), ivec4(imageAtomicAdd(u_resultImage, ivec3(gx % 64,gy,gz), int(gx*gx + gy*gy + gz*gz))));
+; }
+;
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 61
+; Schema: 0
+OpCapability Shader
+OpCapability ImageCubeArray
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %4 "main" %12
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %12 BuiltIn GlobalInvocationId
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+OpDecorate %30 NonReadable
+OpDecorate %37 DescriptorSet 0
+OpDecorate %37 Binding 0
+OpDecorate %37 Coherent
+OpDecorate %60 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 1
+%7 = OpTypePointer Function %6
+%9 = OpTypeInt 32 0
+%10 = OpTypeVector %9 3
+%11 = OpTypePointer Input %10
+%12 = OpVariable %11 Input
+%13 = OpConstant %9 0
+%14 = OpTypePointer Input %9
+%19 = OpConstant %9 1
+%24 = OpConstant %9 2
+%28 = OpTypeImage %6 Cube 0 1 0 2 R32i
+%29 = OpTypePointer UniformConstant %28
+%30 = OpVariable %29 UniformConstant
+%35 = OpTypeVector %6 3
+%37 = OpVariable %29 UniformConstant
+%39 = OpConstant %6 64
+%55 = OpTypePointer Image %6
+%58 = OpTypeVector %6 4
+%60 = OpConstantComposite %10 %19 %19 %19
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%8 = OpVariable %7 Function
+%18 = OpVariable %7 Function
+%23 = OpVariable %7 Function
+%15 = OpAccessChain %14 %12 %13
+%16 = OpLoad %9 %15
+%17 = OpBitcast %6 %16
+OpStore %8 %17
+%20 = OpAccessChain %14 %12 %19
+%21 = OpLoad %9 %20
+%22 = OpBitcast %6 %21
+OpStore %18 %22
+%25 = OpAccessChain %14 %12 %24
+%26 = OpLoad %9 %25
+%27 = OpBitcast %6 %26
+OpStore %23 %27
+%31 = OpLoad %28 %30
+%32 = OpLoad %6 %8
+%33 = OpLoad %6 %18
+%34 = OpLoad %6 %23
+%36 = OpCompositeConstruct %35 %32 %33 %34
+%38 = OpLoad %6 %8
+%40 = OpSMod %6 %38 %39
+%41 = OpLoad %6 %18
+%42 = OpLoad %6 %23
+%43 = OpCompositeConstruct %35 %40 %41 %42
+%44 = OpLoad %6 %8
+%45 = OpLoad %6 %8
+%46 = OpIMul %6 %44 %45
+%47 = OpLoad %6 %18
+%48 = OpLoad %6 %18
+%49 = OpIMul %6 %47 %48
+%50 = OpIAdd %6 %46 %49
+%51 = OpLoad %6 %23
+%52 = OpLoad %6 %23
+%53 = OpIMul %6 %51 %52
+%54 = OpIAdd %6 %50 %53
+%56 = OpImageTexelPointer %55 %37 %43 %13
+%57 = ${OPNAME} %6 %56 %19 %13 ${LASTARG:default=%54}
+%59 = OpCompositeConstruct %58 %57 %57 %57 %57
+OpImageWrite %31 %36 %59
+OpReturn
+OpFunctionEnd
+)";
+
+} // anonymous namespace
+
+bool CaseVariant::operator< (const CaseVariant& other) const
+{
+	// Simple lexicographical comparison using the struct members.
+	const std::array<int, 4> thisMembers =
+	{{
+		static_cast<int>(imageType),
+		static_cast<int>(textureFormat.order),
+		static_cast<int>(textureFormat.type),
+		static_cast<int>(checkType),
+	}};
+
+	const std::array<int, 4> otherMembers =
+	{{
+		static_cast<int>(other.imageType),
+		static_cast<int>(other.textureFormat.order),
+		static_cast<int>(other.textureFormat.type),
+		static_cast<int>(other.checkType),
+	}};
+
+	return thisMembers < otherMembers;
+}
+
+CaseVariant::CaseVariant (ImageType imgtype, tcu::TextureFormat::ChannelOrder order, tcu::TextureFormat::ChannelType chtype, CheckType cktype)
+	: imageType{imgtype}, textureFormat{order, chtype}, checkType{cktype}
+{}
+
+std::string getSpirvAtomicOpShader (const CaseVariant& caseVariant)
+{
+	using ShadersMapT	= std::map<CaseVariant, const std::string*>;
+	using ValueType		= ShadersMapT::value_type;
+
+	static const ShadersMapT kShadersMap =
+	{
+		ValueType{CaseVariant{IMAGE_TYPE_1D,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_1d_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_1D,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_1d_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_1D,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_1d_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_1D,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_1d_r32i_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_1D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_1d_array_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_1D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_1d_array_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_1D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_1d_array_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_1D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_1d_array_r32i_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_2D,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_2d_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_2D,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_2d_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_2D,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_2d_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_2D,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_2d_r32i_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_2D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_2d_array_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_2D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_2d_array_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_2D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_2d_array_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_2D_ARRAY,		tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_2d_array_r32i_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_3D,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_3d_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_3D,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_3d_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_3D,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_3d_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_3D,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_3d_r32i_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_cube_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE,			tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_cube_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_cube_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE,			tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_cube_r32i_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE_ARRAY,	tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_cube_array_r32ui_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE_ARRAY,	tcu::TextureFormat::R,	tcu::TextureFormat::UNSIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_cube_array_r32ui_intermediate_values},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE_ARRAY,	tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_END_RESULTS},			&kShader_cube_array_r32i_end_result},
+		ValueType{CaseVariant{IMAGE_TYPE_CUBE_ARRAY,	tcu::TextureFormat::R,	tcu::TextureFormat::SIGNED_INT32,	CaseVariant::CHECK_TYPE_INTERMEDIATE_RESULTS},	&kShader_cube_array_r32i_intermediate_values},
+	};
+
+	const auto iter = kShadersMap.find(caseVariant);
+	DE_ASSERT(iter != kShadersMap.end());
+	return *(iter->second);
+}
+
+} // namespace image
+} // namespace vkt
+
+// Note: the SPIR-V shaders above were created using the atomic addition shaders as a base, replacing OpAtomicIAdd with a string
+// template and making the last operation argument optional. Because the atomic addition shaders are generated, the final version of
+// each shader was obtained from TestResults.qpa after running the whole atomic addition group, using the Python script documented
+// below.
+#if 0
+import html
+import re
+import sys
+
+STATE_OUT = 0
+STATE_GLSL = 1
+STATE_SPIRV = 2
+
+state = STATE_OUT
+test_name = None
+glsl_lines = []
+spirv_lines = []
+header_printed = False
+
+for line in sys.stdin:
+	if line.startswith("#beginTestCaseResult"):
+		test_name = line.strip().split()[1]
+		test_name = "_".join(test_name.split(".")[-2:])
+
+	if "<ShaderSource>" in line:
+		line = re.sub(r".*<ShaderSource>", "", line)
+		state = STATE_GLSL
+
+	if "</ShaderSource>" in line:
+		state = STATE_OUT
+
+	if "<SpirVAssemblySource>" in line:
+		line = re.sub(r".*<SpirVAssemblySource>", "", line)
+		state = STATE_SPIRV
+
+	if "</SpirVAssemblySource>" in line:
+		state = STATE_OUT
+		if not header_printed:
+			print("#include <string>")
+			print()
+			header_printed = True
+		print("const std::string kShader_%s = R\"(" % (test_name,))
+		print("; The SPIR-V shader below is based on the following GLSL shader, but OpAtomicIAdd has been")
+		print("; replaced with a template parameter and the last argument for it has been made optional.")
+		print(";")
+		for glsl_line in glsl_lines:
+			glsl_line = html.unescape(glsl_line)
+			print("; %s" % (glsl_line,), end="")
+		print(";")
+		for spirv_line in spirv_lines:
+			spirv_line = html.unescape(spirv_line)
+			if "OpAtomicIAdd" in spirv_line:
+				words = spirv_line.strip().split()
+				for i in range(len(words)):
+					if words[i] == "OpAtomicIAdd":
+						words[i] = r"${OPNAME}"
+				words[-1] = r"${LASTARG:default=%s}" % (words[-1], )
+				spirv_line = " ".join(words) + "\n"
+			print("%s" % (spirv_line, ), end="")
+		print(")\";")
+		print()
+
+		test_name = None
+		glsl_lines = []
+		spirv_lines = []
+
+	if state == STATE_GLSL:
+		glsl_lines.append(line)
+	elif state == STATE_SPIRV:
+		spirv_lines.append(line)
+#endif
diff --git a/external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.hpp b/external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.hpp
new file mode 100644
index 0000000..e4e284c
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/image/vktImageAtomicSpirvShaders.hpp
@@ -0,0 +1,61 @@
+#ifndef _VKTIMAGEATOMICSPIRVSHADERS_HPP
+#define _VKTIMAGEATOMICSPIRVSHADERS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Valve Corporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * 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 Helper SPIR-V shaders for some image atomic operations.
+ *//*--------------------------------------------------------------------*/
+#include "vktImageTestsUtil.hpp"
+
+#include <string>
+
+namespace vkt
+{
+namespace image
+{
+
+// Test case variant, used when deciding which SPIR-V shader to get.
+struct CaseVariant
+{
+	enum CheckType
+	{
+		CHECK_TYPE_INTERMEDIATE_RESULTS = 0,
+		CHECK_TYPE_END_RESULTS,
+	};
+
+	ImageType			imageType;
+	tcu::TextureFormat	textureFormat;
+	CheckType			checkType;
+
+	// Allows this struct to be used as key in maps.
+	bool operator< (const CaseVariant& other) const;
+
+	// Constructor.
+	CaseVariant (ImageType imgtype, tcu::TextureFormat::ChannelOrder order, tcu::TextureFormat::ChannelType chtype, CheckType cktype);
+};
+
+// Gets the shader template for the appropriate case variant.
+std::string getSpirvAtomicOpShader (const CaseVariant& caseVariant);
+
+} // namespace image
+} // namespace vkt
+
+#endif // _VKTIMAGEATOMICSPIRVSHADERS_HPP
diff --git a/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp b/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
index 2225726..09d3c86 100644
--- a/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
+++ b/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
@@ -83,6 +83,7 @@
 	TEST_TYPE_POINT_SIZE,
 	TEST_TYPE_MULTISAMPLE,
 	TEST_TYPE_QUERIES,
+	TEST_TYPE_NON_PRECISE_QUERIES,
 	TEST_TYPE_READBACK_WITH_IMPLICIT_CLEAR,
 	TEST_TYPE_READBACK_WITH_EXPLICIT_CLEAR,
 	TEST_TYPE_DEPTH,
@@ -773,6 +774,7 @@
 		case TEST_TYPE_POINT_SIZE:
 		case TEST_TYPE_MULTISAMPLE:
 		case TEST_TYPE_QUERIES:
+		case TEST_TYPE_NON_PRECISE_QUERIES:
 		case TEST_TYPE_READBACK_WITH_IMPLICIT_CLEAR:
 		case TEST_TYPE_READBACK_WITH_EXPLICIT_CLEAR:
 		case TEST_TYPE_DEPTH:
@@ -2444,21 +2446,23 @@
 	deUint32			getUsedViewsCount				(const deUint32			viewMaskIndex);
 	deUint32			getQueryCountersNumber			();
 private:
-	const deUint32		m_verticesPerPrimitive;
-	deUint64			m_timestampMask;
-	vector<deUint64>	m_timestampStartValues;
-	vector<deUint64>	m_timestampEndValues;
-	vector<deBool>		m_counterSeriesStart;
-	vector<deBool>		m_counterSeriesEnd;
-	vector<deUint64>	m_occlusionValues;
-	vector<deUint64>	m_occlusionExpectedValues;
-	deUint32			m_occlusionObjectsOffset;
-	vector<deUint64>	m_occlusionObjectPixelsCount;
+	const deUint32				m_verticesPerPrimitive;
+	const VkQueryControlFlags	m_occlusionQueryFlags;
+	deUint64					m_timestampMask;
+	vector<deUint64>			m_timestampStartValues;
+	vector<deUint64>			m_timestampEndValues;
+	vector<deBool>				m_counterSeriesStart;
+	vector<deBool>				m_counterSeriesEnd;
+	vector<deUint64>			m_occlusionValues;
+	vector<deUint64>			m_occlusionExpectedValues;
+	deUint32					m_occlusionObjectsOffset;
+	vector<deUint64>			m_occlusionObjectPixelsCount;
 };
 
 MultiViewQueriesTestInstance::MultiViewQueriesTestInstance (Context& context, const TestParameters& parameters)
 	: MultiViewRenderTestInstance	(context, parameters)
-	, m_verticesPerPrimitive(4u)
+	, m_verticesPerPrimitive		(4u)
+	, m_occlusionQueryFlags			((parameters.viewIndex == TEST_TYPE_QUERIES) * VK_QUERY_CONTROL_PRECISE_BIT)
 {
 	// Generate the timestamp mask
 	const std::vector<VkQueueFamilyProperties>	queueProperties = vk::getPhysicalDeviceQueueFamilyProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice());
@@ -2503,8 +2507,18 @@
 		occlusionExpectedValue	+= m_occlusionExpectedValues[ndx];
 
 		if (m_counterSeriesEnd[ndx])
-			if (occlusionExpectedValue != occlusionValue)
-				return tcu::TestStatus::fail("occlusion, result:" + de::toString(occlusionValue) + ", expected:" + de::toString(occlusionExpectedValue));
+		{
+			if (m_parameters.viewIndex == TEST_TYPE_QUERIES)
+			{
+				if (occlusionExpectedValue != occlusionValue)
+					return tcu::TestStatus::fail("occlusion, result:" + de::toString(occlusionValue) + ", expected:" + de::toString(occlusionExpectedValue));
+			}
+			else // verify non precise occlusion query
+			{
+				if (occlusionValue == 0)
+					return tcu::TestStatus::fail("occlusion, result: 0, expected non zero value");
+			}
+		}
 	}
 
 	DE_ASSERT(!m_timestampStartValues.empty());
@@ -2634,7 +2648,6 @@
 	const Unique<VkQueryPool>	occlusionQueryPool				(createQueryPool(*m_device, *m_logicalDevice, &occlusionQueryPoolCreateInfo));
 	const Unique<VkQueryPool>	timestampStartQueryPool			(createQueryPool(*m_device, *m_logicalDevice, &timestampQueryPoolCreateInfo));
 	const Unique<VkQueryPool>	timestampEndQueryPool			(createQueryPool(*m_device, *m_logicalDevice, &timestampQueryPoolCreateInfo));
-	VkQueryControlFlags			occlusionQueryFlags				= VK_QUERY_CONTROL_PRECISE_BIT;
 	deUint32					queryStartIndex					= 0;
 
 	beginCommandBuffer(*m_device, *m_cmdBuffer);
@@ -2670,7 +2683,7 @@
 				m_device->cmdDraw(*m_cmdBuffer, m_verticesPerPrimitive, 1u, firstVertex, 0u);
 
 				// Render occluded object
-				m_device->cmdBeginQuery(*m_cmdBuffer, *occlusionQueryPool, queryStartIndex, occlusionQueryFlags);
+				m_device->cmdBeginQuery(*m_cmdBuffer, *occlusionQueryPool, queryStartIndex, m_occlusionQueryFlags);
 				m_device->cmdDraw(*m_cmdBuffer, m_verticesPerPrimitive, 1u, m_occlusionObjectsOffset + firstVertex, 0u);
 				m_device->cmdEndQuery(*m_cmdBuffer, *occlusionQueryPool, queryStartIndex);
 
@@ -3340,7 +3353,8 @@
 		if (TEST_TYPE_MULTISAMPLE == m_parameters.viewIndex)
 			return new MultiViewMultsampleTestInstance(context, m_parameters);
 
-		if (TEST_TYPE_QUERIES == m_parameters.viewIndex)
+		if (TEST_TYPE_QUERIES == m_parameters.viewIndex ||
+			TEST_TYPE_NON_PRECISE_QUERIES == m_parameters.viewIndex)
 			return new MultiViewQueriesTestInstance(context, m_parameters);
 
 		if (TEST_TYPE_VIEW_MASK == m_parameters.viewIndex ||
@@ -3621,6 +3635,7 @@
 		"point_size",
 		"multisample",
 		"queries",
+		"non_precise_queries",
 		"readback_implicit_clear",
 		"readback_explicit_clear",
 		"depth",
@@ -3734,6 +3749,7 @@
 				case TEST_TYPE_POINT_SIZE:
 				case TEST_TYPE_MULTISAMPLE:
 				case TEST_TYPE_QUERIES:
+				case TEST_TYPE_NON_PRECISE_QUERIES:
 				case TEST_TYPE_READBACK_WITH_IMPLICIT_CLEAR:
 				case TEST_TYPE_READBACK_WITH_EXPLICIT_CLEAR:
 				case TEST_TYPE_DEPTH:
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
index 28d7ee9..d788cf5 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
@@ -28,10 +28,19 @@
 #include "vkBuilderUtil.hpp"
 #include "vkQueryUtil.hpp"
 #include "vkObjUtil.hpp"
+#include "vkImageWithMemory.hpp"
+#include "vkBufferWithMemory.hpp"
+#include "vkBarrierUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkTypeUtil.hpp"
 
 #include "tcuVectorUtil.hpp"
 #include "tcuTestLog.hpp"
 
+#include <set>
+
+using std::set;
+
 namespace vkt
 {
 namespace pipeline
@@ -1069,6 +1078,418 @@
 	return new MSInstance<MSInstanceSampleMaskWrite>(context, m_imageMSParams);
 }
 
+struct WriteSampleParams
+{
+	vk::VkSampleCountFlagBits sampleCount;
+};
+
+class WriteSampleTest : public vkt::TestCase
+{
+public:
+									WriteSampleTest		(tcu::TestContext& testCtx, const std::string& name, const std::string& desc, const WriteSampleParams& params)
+										: vkt::TestCase(testCtx, name, desc), m_params(params)
+										{}
+	virtual							~WriteSampleTest	(void) {}
+
+	virtual void					initPrograms		(vk::SourceCollections& programCollection) const;
+	virtual vkt::TestInstance*		createInstance		(Context& context) const;
+	virtual void					checkSupport		(Context& context) const;
+
+	static void						assertSampleCount	(deUint32 sampleCount);
+	static deUint32					bitsPerCoord		(deUint32 sampleCount);
+	static deUint32					imageSize			(deUint32 sampleCount);
+	static vk::VkExtent3D			getExtent3D			(deUint32 sampleCount);
+	static std::string				getShaderDecl		(const tcu::Vec4& color);
+
+	static const tcu::Vec4			kClearColor;
+	static const tcu::Vec4			kBadColor;
+	static const tcu::Vec4			kGoodColor;
+	static const tcu::Vec4			kWriteColor;
+
+	static const set<deUint32>		kValidSampleCounts;
+	static constexpr vk::VkFormat	kImageFormat		= vk::VK_FORMAT_R8G8B8A8_UNORM;
+
+	// Keep these two in sync.
+	static constexpr vk::VkImageUsageFlags		kUsageFlags		= (vk::VK_IMAGE_USAGE_STORAGE_BIT | vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT | vk::VK_IMAGE_USAGE_TRANSFER_DST_BIT);
+	static constexpr vk::VkFormatFeatureFlags	kFeatureFlags	= (vk::VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT | vk::VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | vk::VK_FORMAT_FEATURE_TRANSFER_DST_BIT);
+
+private:
+	WriteSampleParams		m_params;
+};
+
+const tcu::Vec4 WriteSampleTest::kClearColor	{0.0f, 0.0f, 0.0f, 1.0f};
+const tcu::Vec4 WriteSampleTest::kBadColor		{1.0f, 0.0f, 0.0f, 1.0f};
+const tcu::Vec4 WriteSampleTest::kGoodColor		{0.0f, 1.0f, 0.0f, 1.0f};
+const tcu::Vec4 WriteSampleTest::kWriteColor	{0.0f, 0.0f, 1.0f, 1.0f};
+
+class WriteSampleTestInstance : public vkt::TestInstance
+{
+public:
+								WriteSampleTestInstance		(vkt::Context& context, const WriteSampleParams& params)
+									: vkt::TestInstance(context), m_params(params)
+									{}
+
+	virtual						~WriteSampleTestInstance	(void) {}
+
+	virtual tcu::TestStatus		iterate						(void);
+
+private:
+	WriteSampleParams			m_params;
+};
+
+const set<deUint32> WriteSampleTest::kValidSampleCounts =
+{
+	vk::VK_SAMPLE_COUNT_2_BIT,
+	vk::VK_SAMPLE_COUNT_4_BIT,
+	vk::VK_SAMPLE_COUNT_8_BIT,
+	vk::VK_SAMPLE_COUNT_16_BIT,
+};
+
+void WriteSampleTest::assertSampleCount (deUint32 sampleCount)
+{
+	DE_ASSERT(kValidSampleCounts.find(sampleCount) != kValidSampleCounts.end());
+	DE_UNREF(sampleCount); // for release builds.
+}
+
+// The test will try to verify all write combinations for the given sample count, and will verify one combination per image pixel.
+// This means the following image sizes need to be used:
+//		- 2 samples: 2x2
+//		- 4 samples: 4x4
+//		- 8 samples: 16x16
+//		- 16 samples: 256x256
+// In other words, images will be square with 2^(samples-1) pixels on each side.
+deUint32 WriteSampleTest::imageSize (deUint32 sampleCount)
+{
+	assertSampleCount(sampleCount);
+	return (1u<<(sampleCount>>1u));
+}
+
+// When dealing with N samples, each coordinate (x, y) will be used to decide which samples will be written to, using N/2 bits for each of the X and Y values.
+deUint32 WriteSampleTest::bitsPerCoord (deUint32 numSamples)
+{
+	assertSampleCount(numSamples);
+	return (numSamples / 2u);
+}
+
+vk::VkExtent3D WriteSampleTest::getExtent3D (deUint32 sampleCount)
+{
+	const deUint32 size = imageSize(sampleCount);
+	return vk::VkExtent3D{size, size, 1u};
+}
+
+std::string WriteSampleTest::getShaderDecl (const tcu::Vec4& color)
+{
+	std::ostringstream declaration;
+	declaration << "vec4(" << color.x() << ", " << color.y() << ", " << color.z() << ", " << color.w() << ")";
+	return declaration.str();
+}
+
+void WriteSampleTest::checkSupport (Context& context) const
+{
+	const auto&	vki				= context.getInstanceInterface();
+	const auto	physicalDevice	= context.getPhysicalDevice();
+
+	// Check multisample storage images support.
+	const auto features = vk::getPhysicalDeviceFeatures(vki, physicalDevice);
+	if (!features.shaderStorageImageMultisample)
+		TCU_THROW(NotSupportedError, "Using multisample images as storage is not supported");
+
+	// Check the specific image format.
+	const auto properties = vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, kImageFormat);
+	if (!(properties.optimalTilingFeatures & kFeatureFlags))
+		TCU_THROW(NotSupportedError, "Format does not support the required features");
+
+	// Check the supported sample count.
+	const auto imgProps = vk::getPhysicalDeviceImageFormatProperties(vki, physicalDevice, kImageFormat, vk::VK_IMAGE_TYPE_2D, vk::VK_IMAGE_TILING_OPTIMAL, kUsageFlags, 0u);
+	if (!(imgProps.sampleCounts & m_params.sampleCount))
+		TCU_THROW(NotSupportedError, "Format does not support the required sample count");
+}
+
+void WriteSampleTest::initPrograms (vk::SourceCollections& programCollection) const
+{
+	std::ostringstream writeColorDecl, goodColorDecl, badColorDecl, clearColorDecl, allColorDecl;
+
+	writeColorDecl	<< "        vec4  wcolor   = " << getShaderDecl(kWriteColor)	<< ";\n";
+	goodColorDecl	<< "        vec4  bcolor   = " << getShaderDecl(kBadColor)		<< ";\n";
+	badColorDecl	<< "        vec4  gcolor   = " << getShaderDecl(kGoodColor)		<< ";\n";
+	clearColorDecl	<< "        vec4  ccolor   = " << getShaderDecl(kClearColor)	<< ";\n";
+	allColorDecl	<< writeColorDecl.str() << goodColorDecl.str() << badColorDecl.str() << clearColorDecl.str();
+
+	std::ostringstream shaderWrite;
+
+	const auto bpc		= de::toString(bitsPerCoord(m_params.sampleCount));
+	const auto count	= de::toString(m_params.sampleCount);
+
+	shaderWrite
+		<< "#version 450\n"
+		<< "\n"
+		<< "layout (rgba8, set=0, binding=0) uniform image2DMS writeImg;\n"
+		<< "layout (rgba8, set=0, binding=1) uniform image2D   verificationImg;\n"
+		<< "\n"
+		<< "void main()\n"
+		<< "{\n"
+		<< writeColorDecl.str()
+		<< "        uvec2 ucoords  = uvec2(gl_GlobalInvocationID.xy);\n"
+		<< "        ivec2 icoords  = ivec2(ucoords);\n"
+		<< "        uint writeMask = ((ucoords.x << " << bpc << ") | ucoords.y);\n"
+		<< "        for (uint i = 0; i < " << count << "; ++i)\n"
+		<< "        {\n"
+		<< "                if ((writeMask & (1 << i)) != 0)\n"
+		<< "                        imageStore(writeImg, icoords, int(i), wcolor);\n"
+		<< "        }\n"
+		<< "}\n"
+		;
+
+	std::ostringstream shaderVerify;
+
+	shaderVerify
+		<< "#version 450\n"
+		<< "\n"
+		<< "layout (rgba8, set=0, binding=0) uniform image2DMS writeImg;\n"
+		<< "layout (rgba8, set=0, binding=1) uniform image2D   verificationImg;\n"
+		<< "\n"
+		<< "void main()\n"
+		<< "{\n"
+		<< allColorDecl.str()
+		<< "        uvec2 ucoords  = uvec2(gl_GlobalInvocationID.xy);\n"
+		<< "        ivec2 icoords  = ivec2(ucoords);\n"
+		<< "        uint writeMask = ((ucoords.x << " << bpc << ") | ucoords.y);\n"
+		<< "        for (uint i = 0; i < " << count << "; ++i)\n"
+		<< "        {\n"
+		<< "                bool expectWrite = ((writeMask & (1 << i)) != 0);\n"
+		<< "                vec4 sampleColor = imageLoad(writeImg, icoords, int(i));\n"
+		<< "                vec4 wantedColor = (expectWrite ? wcolor : ccolor);\n"
+		<< "                vec4 resultColor = ((sampleColor == wantedColor) ? gcolor : bcolor);\n"
+		<< "                imageStore(verificationImg, icoords, resultColor);\n"
+		<< "        }\n"
+		<< "}\n"
+		;
+
+	programCollection.glslSources.add("write")	<< glu::ComputeSource(shaderWrite.str());
+	programCollection.glslSources.add("verify")	<< glu::ComputeSource(shaderVerify.str());
+}
+
+vkt::TestInstance* WriteSampleTest::createInstance (Context& context) const
+{
+	return new WriteSampleTestInstance{context, m_params};
+}
+
+tcu::TestStatus WriteSampleTestInstance::iterate (void)
+{
+	const auto&	vkd			= m_context.getDeviceInterface();
+	const auto	device		= m_context.getDevice();
+	auto&		allocator	= m_context.getDefaultAllocator();
+	const auto	queue		= m_context.getUniversalQueue();
+	const auto	queueIndex	= m_context.getUniversalQueueFamilyIndex();
+	const auto	extent3D	= WriteSampleTest::getExtent3D(m_params.sampleCount);
+
+	// Create storage image and verification image.
+	const vk::VkImageCreateInfo storageImageInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType;
+		nullptr,									// const void*				pNext;
+		0u,											// VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						// VkImageType				imageType;
+		WriteSampleTest::kImageFormat,				// VkFormat					format;
+		extent3D,									// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		1u,											// deUint32					arrayLayers;
+		m_params.sampleCount,						// VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling			tiling;
+		WriteSampleTest::kUsageFlags,				// VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueIndex,								// const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				// VkImageLayout			initialLayout;
+	};
+
+	const vk::VkImageCreateInfo verificationImageInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType;
+		nullptr,									// const void*				pNext;
+		0u,											// VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						// VkImageType				imageType;
+		WriteSampleTest::kImageFormat,				// VkFormat					format;
+		extent3D,									// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		1u,											// deUint32					arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					// VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling			tiling;
+		WriteSampleTest::kUsageFlags,				// VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueIndex,								// const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				// VkImageLayout			initialLayout;
+	};
+
+	vk::ImageWithMemory storageImgPrt		{vkd, device, allocator, storageImageInfo, vk::MemoryRequirement::Any};
+	vk::ImageWithMemory verificationImgPtr	{vkd, device, allocator, verificationImageInfo, vk::MemoryRequirement::Any};
+
+	const vk::VkImageSubresourceRange kSubresourceRange =
+	{
+		vk::VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+		0u,								// deUint32				baseMipLevel;
+		1u,								// deUint32				levelCount;
+		0u,								// deUint32				baseArrayLayer;
+		1u,								// deUint32				layerCount;
+	};
+
+	auto storageImgViewPtr		= vk::makeImageView(vkd, device, storageImgPrt.get(), vk::VK_IMAGE_VIEW_TYPE_2D, WriteSampleTest::kImageFormat, kSubresourceRange);
+	auto verificationImgViewPtr	= vk::makeImageView(vkd, device, verificationImgPtr.get(), vk::VK_IMAGE_VIEW_TYPE_2D, WriteSampleTest::kImageFormat, kSubresourceRange);
+
+	// Prepare a staging buffer to check verification image.
+	const auto				tcuFormat			= vk::mapVkFormat(WriteSampleTest::kImageFormat);
+	const VkDeviceSize		bufferSize			= extent3D.width * extent3D.height * extent3D.depth * tcu::getPixelSize(tcuFormat);
+	const auto				stagingBufferInfo	= vk::makeBufferCreateInfo(bufferSize, vk::VK_BUFFER_USAGE_TRANSFER_DST_BIT);
+	vk::BufferWithMemory	stagingBuffer		{vkd, device, allocator, stagingBufferInfo, MemoryRequirement::HostVisible};
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder layoutBuilder;
+	layoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, vk::VK_SHADER_STAGE_COMPUTE_BIT);
+	layoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, vk::VK_SHADER_STAGE_COMPUTE_BIT);
+	auto descriptorSetLayout = layoutBuilder.build(vkd, device);
+
+	// Descriptor pool.
+	vk::DescriptorPoolBuilder poolBuilder;
+	poolBuilder.addType(vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 2u);
+	auto descriptorPool = poolBuilder.build(vkd, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+	// Descriptor set.
+	const auto descriptorSet = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+
+	// Update descriptor set using the images.
+	const auto storageImgDescriptorInfo			= vk::makeDescriptorImageInfo(DE_NULL, storageImgViewPtr.get(), vk::VK_IMAGE_LAYOUT_GENERAL);
+	const auto verificationImgDescriptorInfo	= vk::makeDescriptorImageInfo(DE_NULL, verificationImgViewPtr.get(), vk::VK_IMAGE_LAYOUT_GENERAL);
+
+	vk::DescriptorSetUpdateBuilder updateBuilder;
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &storageImgDescriptorInfo);
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(1u), vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &verificationImgDescriptorInfo);
+	updateBuilder.update(vkd, device);
+
+	// Create write and verification compute pipelines.
+	auto shaderWriteModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("write"), 0u);
+	auto shaderVerifyModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("verify"), 0u);
+	auto pipelineLayout		= vk::makePipelineLayout(vkd, device, descriptorSetLayout.get());
+
+	const vk::VkComputePipelineCreateInfo writePipelineCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
+		nullptr,
+		0u,															// flags
+		{															// compute shader
+			vk::VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,	// VkStructureType						sType;
+			nullptr,													// const void*							pNext;
+			0u,															// VkPipelineShaderStageCreateFlags		flags;
+			vk::VK_SHADER_STAGE_COMPUTE_BIT,							// VkShaderStageFlagBits				stage;
+			shaderWriteModule.get(),									// VkShaderModule						module;
+			"main",														// const char*							pName;
+			nullptr,													// const VkSpecializationInfo*			pSpecializationInfo;
+		},
+		pipelineLayout.get(),										// layout
+		DE_NULL,													// basePipelineHandle
+		0,															// basePipelineIndex
+	};
+
+	auto verificationPipelineCreateInfo = writePipelineCreateInfo;
+	verificationPipelineCreateInfo.stage.module = shaderVerifyModule.get();
+
+	auto writePipeline			= vk::createComputePipeline(vkd, device, DE_NULL, &writePipelineCreateInfo);
+	auto verificationPipeline	= vk::createComputePipeline(vkd, device, DE_NULL, &verificationPipelineCreateInfo);
+
+	// Transition images to the correct layout and buffers at different stages.
+	auto storageImgPreClearBarrier			= vk::makeImageMemoryBarrier(0, vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, storageImgPrt.get(), kSubresourceRange);
+	auto storageImgPreShaderBarrier			= vk::makeImageMemoryBarrier(vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_ACCESS_SHADER_WRITE_BIT, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, vk::VK_IMAGE_LAYOUT_GENERAL, storageImgPrt.get(), kSubresourceRange);
+	auto verificationImgPreShaderBarrier	= vk::makeImageMemoryBarrier(0, vk::VK_ACCESS_SHADER_WRITE_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, vk::VK_IMAGE_LAYOUT_GENERAL, verificationImgPtr.get(), kSubresourceRange);
+	auto storageImgPreVerificationBarrier	= vk::makeImageMemoryBarrier(vk::VK_ACCESS_SHADER_WRITE_BIT, vk::VK_ACCESS_SHADER_READ_BIT, vk::VK_IMAGE_LAYOUT_GENERAL, vk::VK_IMAGE_LAYOUT_GENERAL, storageImgPrt.get(), kSubresourceRange);
+	auto verificationImgPostBarrier			= vk::makeImageMemoryBarrier(vk::VK_ACCESS_SHADER_WRITE_BIT, vk::VK_ACCESS_TRANSFER_READ_BIT, vk::VK_IMAGE_LAYOUT_GENERAL, vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, verificationImgPtr.get(), kSubresourceRange);
+	auto bufferBarrier						= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_ACCESS_HOST_READ_BIT, stagingBuffer.get(), 0ull, bufferSize);
+
+	// Command buffer.
+	auto cmdPool		= vk::makeCommandPool(vkd, device, queueIndex);
+	auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd, device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	auto cmdBuffer		= cmdBufferPtr.get();
+
+	// Clear color for the storage image.
+	const auto clearColor = vk::makeClearValueColor(WriteSampleTest::kClearColor);
+
+	const vk::VkBufferImageCopy	copyRegion =
+	{
+		0ull,									// VkDeviceSize				bufferOffset;
+		extent3D.width,							// deUint32					bufferRowLength;
+		extent3D.height,						// deUint32					bufferImageHeight;
+		{										// VkImageSubresourceLayers	imageSubresource;
+			vk::VK_IMAGE_ASPECT_COLOR_BIT,			// VkImageAspectFlags	aspectMask;
+			0u,										// deUint32				mipLevel;
+			0u,										// deUint32				baseArrayLayer;
+			1u,										// deUint32				layerCount;
+		},
+		{ 0, 0, 0 },							// VkOffset3D				imageOffset;
+		extent3D,								// VkExtent3D				imageExtent;
+	};
+
+	// Record and submit commands.
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+		// Clear storage image.
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &storageImgPreClearBarrier);
+		vkd.cmdClearColorImage(cmdBuffer, storageImgPrt.get(), vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearColor.color, 1u, &kSubresourceRange);
+
+		// Bind write pipeline and descriptor set.
+		vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, writePipeline.get());
+		vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, pipelineLayout.get(), 0, 1u, &descriptorSet.get(), 0u, nullptr);
+
+		// Transition images to the appropriate layout before running the shader.
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &storageImgPreShaderBarrier);
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &verificationImgPreShaderBarrier);
+
+		// Run shader.
+		vkd.cmdDispatch(cmdBuffer, extent3D.width, extent3D.height, extent3D.depth);
+
+		// Bind verification pipeline.
+		vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, verificationPipeline.get());
+
+		// Make sure writes happen before reads in the second dispatch for the storage image.
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &storageImgPreVerificationBarrier);
+
+		// Run verification shader.
+		vkd.cmdDispatch(cmdBuffer, extent3D.width, extent3D.height, extent3D.depth);
+
+		// Change verification image layout to prepare the transfer.
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &verificationImgPostBarrier);
+
+		// Copy verification image to staging buffer.
+		vkd.cmdCopyImageToBuffer(cmdBuffer, verificationImgPtr.get(), vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, stagingBuffer.get(), 1u, &copyRegion);
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0, 0u, nullptr, 1u, &bufferBarrier, 0u, nullptr);
+
+	vk::endCommandBuffer(vkd, cmdBuffer);
+
+	// Run shaders.
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Read buffer pixels.
+	const auto& bufferAlloc = stagingBuffer.getAllocation();
+	vk::invalidateAlloc(vkd, device, bufferAlloc);
+
+	// Copy buffer data to texture level and verify all pixels have the proper color.
+	tcu::TextureLevel texture {tcuFormat, static_cast<int>(extent3D.width), static_cast<int>(extent3D.height), static_cast<int>(extent3D.depth)};
+	const auto access = texture.getAccess();
+	deMemcpy(access.getDataPtr(), reinterpret_cast<char*>(bufferAlloc.getHostPtr()) + bufferAlloc.getOffset(), static_cast<size_t>(bufferSize));
+
+	for (int i = 0; i < access.getWidth(); ++i)
+	for (int j = 0; j < access.getHeight(); ++j)
+	for (int k = 0; k < access.getDepth(); ++k)
+	{
+		if (access.getPixel(i, j, k) != WriteSampleTest::kGoodColor)
+		{
+			std::ostringstream msg;
+			msg << "Invalid result at pixel (" << i << ", " << j << ", " << k << "); check error mask for more details";
+			m_context.getTestContext().getLog() << tcu::TestLog::Image("ErrorMask", "Indicates which pixels have unexpected values", access);
+			return tcu::TestStatus::fail(msg.str());
+		}
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
 } // multisample
 
 tcu::TestCaseGroup* createMultisampleShaderBuiltInTests (tcu::TestContext& testCtx)
@@ -1113,7 +1534,7 @@
 		vk::VK_SAMPLE_COUNT_32_BIT,
 	};
 
-	const deUint32 samplesSetReducedCount = static_cast<deUint32>(sizeof(samplesSetReduced) / sizeof(vk::VkSampleCountFlagBits));
+	const deUint32 samplesSetReducedCount = static_cast<deUint32>(DE_LENGTH_OF_ARRAY(samplesSetReduced));
 
 	de::MovePtr<tcu::TestCaseGroup> sampleMaskGroup(new tcu::TestCaseGroup(testCtx, "sample_mask", "Sample Mask Tests"));
 
@@ -1124,6 +1545,19 @@
 
 	testGroup->addChild(sampleMaskGroup.release());
 
+	{
+		de::MovePtr<tcu::TestCaseGroup> imageWriteSampleGroup(new tcu::TestCaseGroup(testCtx, "image_write_sample", "Test OpImageWrite with a sample ID"));
+
+		for (auto count : multisample::WriteSampleTest::kValidSampleCounts)
+		{
+			multisample::WriteSampleParams params { static_cast<vk::VkSampleCountFlagBits>(count) };
+			const auto countStr = de::toString(count);
+			imageWriteSampleGroup->addChild(new multisample::WriteSampleTest(testCtx, countStr + "_samples", "Test image with " + countStr + " samples", params));
+		}
+
+		testGroup->addChild(imageWriteSampleGroup.release());
+	}
+
 	return testGroup.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp
index 5904ca8..dd04591 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp
@@ -27,16 +27,32 @@
 #include "vktPipelineImageUtil.hpp"
 #include "vktPipelineVertexUtil.hpp"
 #include "vktTestCase.hpp"
+
 #include "vkImageUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkBarrierUtil.hpp"
+#include "vkCmdUtil.hpp"
 #include "vkPrograms.hpp"
+#include "vkImageWithMemory.hpp"
+#include "vkBufferWithMemory.hpp"
+
 #include "tcuPlatform.hpp"
 #include "tcuTextureUtil.hpp"
+#include "tcuTestLog.hpp"
+
 #include "deStringUtil.hpp"
 #include "deMemory.h"
 
 #include <iomanip>
 #include <sstream>
 #include <vector>
+#include <string>
+#include <memory>
+#include <utility>
+#include <algorithm>
 
 namespace vkt
 {
@@ -49,20 +65,45 @@
 namespace
 {
 
+class SamplerViewType
+{
+public:
+	SamplerViewType (vk::VkImageViewType type, bool normalized = true)
+		: m_viewType(type), m_normalized(normalized)
+	{
+		if (!normalized)
+			DE_ASSERT(type == vk::VK_IMAGE_VIEW_TYPE_2D || type == vk::VK_IMAGE_VIEW_TYPE_1D);
+	}
+
+	operator vk::VkImageViewType () const
+	{
+		return m_viewType;
+	}
+
+	bool isNormalized () const
+	{
+		return m_normalized;
+	}
+
+private:
+	vk::VkImageViewType m_viewType;
+	bool				m_normalized;
+};
+
 class SamplerTest : public vkt::TestCase
 {
 public:
 										SamplerTest						(tcu::TestContext&	testContext,
 																		 const char*		name,
 																		 const char*		description,
-																		 VkImageViewType	imageViewType,
+																		 SamplerViewType	imageViewType,
 																		 VkFormat			imageFormat,
 																		 int				imageSize,
 																		 float				samplerLod,
 																		 bool				separateStencilUsage);
 	virtual								~SamplerTest					(void) {}
 
-	virtual ImageSamplingInstanceParams	getImageSamplingInstanceParams	(VkImageViewType	imageViewType,
+	virtual ImageSamplingInstanceParams	getImageSamplingInstanceParams	(SamplerViewType	imageViewType,
 																		 VkFormat			imageFormat,
 																		 int				imageSize,
 																		 float				samplerLod,
@@ -72,17 +113,17 @@
 	virtual void						initPrograms					(SourceCollections& sourceCollections) const;
 	virtual void						checkSupport					(Context& context) const;
 	virtual TestInstance*				createInstance					(Context& context) const;
-	virtual tcu::UVec2					getRenderSize					(VkImageViewType viewType) const;
+	virtual tcu::UVec2					getRenderSize					(SamplerViewType viewType) const;
 	virtual std::vector<Vertex4Tex4>	createVertices					(void) const;
 	virtual VkSamplerCreateInfo			getSamplerCreateInfo			(void) const;
 	virtual VkComponentMapping			getComponentMapping				(void) const;
 
-	static std::string					getGlslSamplerType				(const tcu::TextureFormat& format, VkImageViewType type);
-	static tcu::IVec3					getImageSize					(VkImageViewType viewType, int size);
-	static int							getArraySize					(VkImageViewType viewType);
+	static std::string					getGlslSamplerType				(const tcu::TextureFormat& format, SamplerViewType type);
+	static tcu::IVec3					getImageSize					(SamplerViewType viewType, int size);
+	static int							getArraySize					(SamplerViewType viewType);
 
 protected:
-	VkImageViewType						m_imageViewType;
+	SamplerViewType						m_imageViewType;
 	VkFormat							m_imageFormat;
 	int									m_imageSize;
 	float								m_samplerLod;
@@ -95,7 +136,7 @@
 									SamplerMagFilterTest	(tcu::TestContext&	testContext,
 															 const char*		name,
 															 const char*		description,
-															 VkImageViewType	imageViewType,
+															 SamplerViewType	imageViewType,
 															 VkFormat			imageFormat,
 															 VkFilter			magFilter,
 															 bool				separateStencilUsage);
@@ -112,7 +153,7 @@
 									SamplerMinFilterTest	(tcu::TestContext&	testContext,
 															 const char*		name,
 															 const char*		description,
-															 VkImageViewType	imageViewType,
+															 SamplerViewType	imageViewType,
 															 VkFormat			imageFormat,
 															 VkFilter			minFilter,
 															 bool				separateStencilUsage);
@@ -129,7 +170,7 @@
 												SamplerMagReduceFilterTest	(tcu::TestContext&			testContext,
 																			const char*					name,
 																			const char*					description,
-																			VkImageViewType				imageViewType,
+																			SamplerViewType				imageViewType,
 																			VkFormat					imageFormat,
 																			VkComponentMapping			componentMapping,
 																			VkSamplerReductionMode		reductionMode,
@@ -150,7 +191,7 @@
 												SamplerMinReduceFilterTest	(tcu::TestContext&			testContext,
 																			 const char*				name,
 																			 const char*				description,
-																			 VkImageViewType			imageViewType,
+																			 SamplerViewType			imageViewType,
 																			 VkFormat					imageFormat,
 																			 VkComponentMapping			componentMapping,
 																			 VkSamplerReductionMode		reductionMode,
@@ -171,7 +212,7 @@
 									SamplerLodTest			(tcu::TestContext&		testContext,
 															 const char*			name,
 															 const char*			description,
-															 VkImageViewType		imageViewType,
+															 SamplerViewType		imageViewType,
 															 VkFormat				imageFormat,
 															 VkSamplerMipmapMode	mipmapMode,
 															 float					minLod,
@@ -195,7 +236,7 @@
 										SamplerAddressModesTest		(tcu::TestContext&		testContext,
 																	 const char*			name,
 																	 const char*			description,
-																	 VkImageViewType		imageViewType,
+																	 SamplerViewType		imageViewType,
 																	 VkFormat				imageFormat,
 																	 VkSamplerAddressMode	addressU,
 																	 VkSamplerAddressMode	addressV,
@@ -203,7 +244,7 @@
 																	 VkBorderColor			borderColor,
 																	 bool					separateStencilUsage);
 	virtual								~SamplerAddressModesTest	(void) {}
-	virtual tcu::UVec2					getRenderSize				(VkImageViewType viewType) const;
+	virtual tcu::UVec2					getRenderSize				(SamplerViewType viewType) const;
 	virtual std::vector<Vertex4Tex4>	createVertices				(void) const;
 	virtual VkSamplerCreateInfo			getSamplerCreateInfo		(void) const;
 
@@ -220,7 +261,7 @@
 SamplerTest::SamplerTest	(tcu::TestContext&	testContext,
 							 const char*		name,
 							 const char*		description,
-							 VkImageViewType	imageViewType,
+							 SamplerViewType	imageViewType,
 							 VkFormat			imageFormat,
 							 int				imageSize,
 							 float				samplerLod,
@@ -234,7 +275,7 @@
 {
 }
 
-ImageSamplingInstanceParams SamplerTest::getImageSamplingInstanceParams (VkImageViewType	imageViewType,
+ImageSamplingInstanceParams SamplerTest::getImageSamplingInstanceParams (SamplerViewType	imageViewType,
 																		 VkFormat			imageFormat,
 																		 int				imageSize,
 																		 float				samplerLod,
@@ -246,12 +287,13 @@
 	const VkComponentMapping		componentMapping	= getComponentMapping();
 
 	const VkImageAspectFlags		imageAspect			= (!isCompressedFormat(imageFormat) && hasDepthComponent(mapVkFormat(imageFormat).order)) ? VK_IMAGE_ASPECT_DEPTH_BIT : VK_IMAGE_ASPECT_COLOR_BIT;
+	const deUint32					mipLevels			= (imageViewType.isNormalized() ? static_cast<deUint32>(deLog2Floor32(imageSize)) + 1u : 1u);
 
 	const VkImageSubresourceRange	subresourceRange	=
 	{
 		imageAspect,										// VkImageAspectFlags	aspectMask;
 		0u,													// deUint32				baseMipLevel;
-		(deUint32)deLog2Floor32(imageSize) + 1,				// deUint32				mipLevels;
+		mipLevels,											// deUint32				mipLevels;
 		0u,													// deUint32				baseArrayLayer;
 		(deUint32)SamplerTest::getArraySize(imageViewType)	// deUint32				arraySize;
 	};
@@ -357,9 +399,14 @@
 				<< "	fragColor = ";
 
 	if (m_samplerLod > 0.0f)
+	{
+		DE_ASSERT(m_imageViewType.isNormalized());
 		fragmentSrc << "textureLod(texSampler, vtxTexCoords." << texCoordSwizzle << ", " << std::fixed <<  m_samplerLod << ")";
+	}
 	else
+	{
 		fragmentSrc << "texture(texSampler, vtxTexCoords." << texCoordSwizzle << ")" << std::fixed;
+	}
 
 	fragmentSrc << " * vec4" << std::scientific << swizzledScale << " + vec4" << swizzledBias << ";\n"
 				<< "}\n";
@@ -373,7 +420,7 @@
 	return new ImageSamplingInstance(context, getImageSamplingInstanceParams(m_imageViewType, m_imageFormat, m_imageSize, m_samplerLod, m_separateStencilUsage));
 }
 
-tcu::UVec2 SamplerTest::getRenderSize (VkImageViewType viewType) const
+tcu::UVec2 SamplerTest::getRenderSize (SamplerViewType viewType) const
 {
 	if (viewType == VK_IMAGE_VIEW_TYPE_1D || viewType == VK_IMAGE_VIEW_TYPE_2D)
 	{
@@ -393,6 +440,11 @@
 	// seems to work.
 	for (unsigned int i = 0; i < vertices.size(); ++i) {
 		vertices[i].texCoord += tcu::Vec4(0.002f, 0.002f, 0.002f, 0.0f);
+		if (!m_imageViewType.isNormalized()) {
+			const float imageSize = static_cast<float>(m_imageSize);
+			for (int j = 0; j < tcu::Vec4::SIZE; ++j)
+				vertices[i].texCoord[j] *= imageSize;
+		}
 	}
 	return vertices;
 }
@@ -416,9 +468,9 @@
 		false,																	// VkBool32					compareEnable;
 		VK_COMPARE_OP_NEVER,													// VkCompareOp				compareOp;
 		0.0f,																	// float					minLod;
-		0.25f,																	// float					maxLod;
+		(m_imageViewType.isNormalized() ? 0.25f : 0.0f),						// float					maxLod;
 		getFormatBorderColor(BORDER_COLOR_TRANSPARENT_BLACK, m_imageFormat),	// VkBorderColor			borderColor;
-		false																	// VkBool32					unnormalizedCoordinates;
+		!m_imageViewType.isNormalized(),										// VkBool32					unnormalizedCoordinates;
 	};
 
 	return defaultSamplerParams;
@@ -430,7 +482,7 @@
 	return componentMapping;
 }
 
-std::string SamplerTest::getGlslSamplerType (const tcu::TextureFormat& format, VkImageViewType type)
+std::string SamplerTest::getGlslSamplerType (const tcu::TextureFormat& format, SamplerViewType type)
 {
 	std::ostringstream samplerType;
 
@@ -477,7 +529,7 @@
 	return samplerType.str();
 }
 
-tcu::IVec3 SamplerTest::getImageSize (VkImageViewType viewType, int size)
+tcu::IVec3 SamplerTest::getImageSize (SamplerViewType viewType, int size)
 {
 	switch (viewType)
 	{
@@ -495,7 +547,7 @@
 	return tcu::IVec3(size, size, 1);
 }
 
-int SamplerTest::getArraySize (VkImageViewType viewType)
+int SamplerTest::getArraySize (SamplerViewType viewType)
 {
 	switch (viewType)
 	{
@@ -520,7 +572,7 @@
 SamplerMagFilterTest::SamplerMagFilterTest (tcu::TestContext&	testContext,
 											const char*			name,
 											const char*			description,
-											VkImageViewType		imageViewType,
+											SamplerViewType		imageViewType,
 											VkFormat			imageFormat,
 											VkFilter			magFilter,
 											bool				separateStencilUsage)
@@ -543,7 +595,7 @@
 SamplerMinFilterTest::SamplerMinFilterTest (tcu::TestContext&	testContext,
 											const char*			name,
 											const char*			description,
-											VkImageViewType		imageViewType,
+											SamplerViewType		imageViewType,
 											VkFormat			imageFormat,
 											VkFilter			minFilter,
 											bool				separateStencilUsage)
@@ -585,7 +637,7 @@
 SamplerMagReduceFilterTest::SamplerMagReduceFilterTest (tcu::TestContext&			testContext,
 														const char*					name,
 														const char*					description,
-														VkImageViewType				imageViewType,
+														SamplerViewType				imageViewType,
 														VkFormat					imageFormat,
 														VkComponentMapping			componentMapping,
 														VkSamplerReductionMode		reductionMode,
@@ -615,7 +667,7 @@
 SamplerMinReduceFilterTest::SamplerMinReduceFilterTest (tcu::TestContext&			testContext,
 														const char*					name,
 														const char*					description,
-														VkImageViewType				imageViewType,
+														SamplerViewType				imageViewType,
 														VkFormat					imageFormat,
 														VkComponentMapping			componentMapping,
 														VkSamplerReductionMode		reductionMode,
@@ -645,7 +697,7 @@
 SamplerLodTest::SamplerLodTest (tcu::TestContext&	testContext,
 								const char*			name,
 								const char*			description,
-								VkImageViewType		imageViewType,
+								SamplerViewType		imageViewType,
 								VkFormat			imageFormat,
 								VkSamplerMipmapMode	mipmapMode,
 								float				minLod,
@@ -679,7 +731,7 @@
 SamplerAddressModesTest::SamplerAddressModesTest (tcu::TestContext&		testContext,
 												  const char*			name,
 												  const char*			description,
-												  VkImageViewType		imageViewType,
+												  SamplerViewType		imageViewType,
 												  VkFormat				imageFormat,
 												  VkSamplerAddressMode	addressU,
 												  VkSamplerAddressMode	addressV,
@@ -694,7 +746,7 @@
 {
 }
 
-tcu::UVec2 SamplerAddressModesTest::getRenderSize (VkImageViewType viewType) const
+tcu::UVec2 SamplerAddressModesTest::getRenderSize (SamplerViewType viewType) const
 {
 	return 4u * SamplerTest::getRenderSize(viewType);
 }
@@ -758,22 +810,22 @@
 	return de::toLower(fullName.substr(10));
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerMagFilterTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerMagFilterTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
 {
 	MovePtr<tcu::TestCaseGroup> samplerMagFilterTests (new tcu::TestCaseGroup(testCtx, "mag_filter", "Tests for magnification filter"));
 
-	if (isCompressedFormat(imageFormat) || (!isIntFormat(imageFormat) && !isUintFormat(imageFormat)))
+	if (imageViewType.isNormalized() && (isCompressedFormat(imageFormat) || (!isIntFormat(imageFormat) && !isUintFormat(imageFormat))))
 		samplerMagFilterTests->addChild(new SamplerMagFilterTest(testCtx, "linear", "Magnifies image using VK_FILTER_LINEAR", imageViewType, imageFormat, VK_FILTER_LINEAR, separateStencilUsage));
 	samplerMagFilterTests->addChild(new SamplerMagFilterTest(testCtx, "nearest", "Magnifies image using VK_FILTER_NEAREST", imageViewType, imageFormat, VK_FILTER_NEAREST, separateStencilUsage));
 
 	return samplerMagFilterTests;
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerMinFilterTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerMinFilterTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
 {
 	MovePtr<tcu::TestCaseGroup> samplerMinFilterTests (new tcu::TestCaseGroup(testCtx, "min_filter", "Tests for minification filter"));
 
-	if (isCompressedFormat(imageFormat) || (!isIntFormat(imageFormat) && !isUintFormat(imageFormat)))
+	if (imageViewType.isNormalized() && (isCompressedFormat(imageFormat) || (!isIntFormat(imageFormat) && !isUintFormat(imageFormat))))
 		samplerMinFilterTests->addChild(new SamplerMinFilterTest(testCtx, "linear", "Minifies image using VK_FILTER_LINEAR", imageViewType, imageFormat, VK_FILTER_LINEAR, separateStencilUsage));
 	samplerMinFilterTests->addChild(new SamplerMinFilterTest(testCtx, "nearest", "Minifies image using VK_FILTER_NEAREST", imageViewType, imageFormat, VK_FILTER_NEAREST, separateStencilUsage));
 
@@ -815,7 +867,7 @@
 	return name.str();
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerMagReduceFilterTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerMagReduceFilterTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
 {
 	MovePtr<tcu::TestCaseGroup> samplerMagReduceFilterTests (new tcu::TestCaseGroup(testCtx, "mag_reduce", "Tests for magnification reduce filter"));
 
@@ -836,7 +888,7 @@
 	return samplerMagReduceFilterTests;
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerMinReduceFilterTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerMinReduceFilterTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
 {
 	MovePtr<tcu::TestCaseGroup> samplerMinReduceFilterTests (new tcu::TestCaseGroup(testCtx, "min_reduce", "Tests for minification reduce filter"));
 
@@ -857,7 +909,7 @@
 	return samplerMinReduceFilterTests;
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerLodTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, VkSamplerMipmapMode mipmapMode, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerLodTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, VkSamplerMipmapMode mipmapMode, bool separateStencilUsage)
 {
 	struct TestCaseConfig
 	{
@@ -892,7 +944,7 @@
 	return samplerLodTests;
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerMipmapTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerMipmapTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
 {
 	MovePtr<tcu::TestCaseGroup> samplerMipmapTests (new tcu::TestCaseGroup(testCtx, "mipmap", "Tests for mipmap modes"));
 
@@ -955,7 +1007,7 @@
 	return caseName.str();
 }
 
-MovePtr<tcu::TestCaseGroup> createSamplerAddressModesTests (tcu::TestContext& testCtx, VkImageViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
+MovePtr<tcu::TestCaseGroup> createSamplerAddressModesTests (tcu::TestContext& testCtx, SamplerViewType imageViewType, VkFormat imageFormat, bool separateStencilUsage)
 {
 	struct TestCaseConfig
 	{
@@ -1009,6 +1061,11 @@
 	{
 		const TestCaseConfig& config = testCaseConfigs[configNdx];
 
+		if (!imageViewType.isNormalized() &&
+			((config.u != VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE && config.u != VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER) ||
+			 (config.v != VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE && config.v != VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER)))
+			 continue;
+
 		samplerAddressModesTests->addChild(new SamplerAddressModesTest(testCtx,
 																	   getAddressModesCaseName(config.u, config.v, config.w, config.border).c_str(),
 																	   "",
@@ -1022,20 +1079,566 @@
 	return samplerAddressModesTests;
 }
 
+class ExactSamplingCase : public vkt::TestCase
+{
+public:
+	struct Params
+	{
+		vk::VkFormat	format;
+		bool			unnormalizedCoordinates;
+	};
+
+	struct PushConstants
+	{
+		float texWidth;
+		float texHeight;
+	};
+
+	struct VertexData
+	{
+		tcu::Vec2 vtxCoords;
+		tcu::Vec2 texCoords;
+
+		static vk::VkVertexInputBindingDescription					getBindingDescription		(void);
+		static std::vector<vk::VkVertexInputAttributeDescription>	getAttributeDescriptions	(void);
+	};
+
+									ExactSamplingCase		(tcu::TestContext& testCtx, const std::string& name, const std::string& description, const Params& params);
+	virtual							~ExactSamplingCase		(void) {}
+
+	virtual void					initPrograms			(vk::SourceCollections& programCollection) const;
+	virtual TestInstance*			createInstance			(Context& context) const;
+	virtual void					checkSupport			(Context& context) const;
+
+private:
+	Params m_params;
+};
+
+class ExactSamplingInstance : public vkt::TestInstance
+{
+public:
+	using Params = ExactSamplingCase::Params;
+
+								ExactSamplingInstance	(Context& context, const Params& params);
+	virtual						~ExactSamplingInstance	(void) {}
+
+	virtual tcu::TestStatus		iterate					(void);
+
+	vk::VkExtent3D				getTextureExtent		(void) const;
+
+private:
+	Params m_params;
+};
+
+vk::VkVertexInputBindingDescription ExactSamplingCase::VertexData::getBindingDescription (void)
+{
+	static const vk::VkVertexInputBindingDescription desc =
+	{
+		0u,																// deUint32				binding;
+		static_cast<deUint32>(sizeof(ExactSamplingCase::VertexData)),	// deUint32				stride;
+		vk::VK_VERTEX_INPUT_RATE_VERTEX,								// VkVertexInputRate	inputRate;
+	};
+
+	return desc;
+}
+
+std::vector<vk::VkVertexInputAttributeDescription> ExactSamplingCase::VertexData::getAttributeDescriptions (void)
+{
+	static const std::vector<vk::VkVertexInputAttributeDescription> desc =
+	{
+		{
+			0u,																			// deUint32	location;
+			0u,																			// deUint32	binding;
+			vk::VK_FORMAT_R32G32_SFLOAT,												// VkFormat	format;
+			static_cast<deUint32>(offsetof(ExactSamplingCase::VertexData, vtxCoords)),	// deUint32	offset;
+		},
+		{
+			1u,																			// deUint32	location;
+			0u,																			// deUint32	binding;
+			vk::VK_FORMAT_R32G32_SFLOAT,												// VkFormat	format;
+			static_cast<deUint32>(offsetof(ExactSamplingCase::VertexData, texCoords)),	// deUint32	offset;
+		},
+	};
+
+	return desc;
+}
+
+
+ExactSamplingCase::ExactSamplingCase (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const Params& params)
+	: vkt::TestCase{testCtx, name, description}, m_params(params)
+{
+}
+
+void ExactSamplingCase::initPrograms (vk::SourceCollections& programCollection) const
+{
+	std::ostringstream vertexShader;
+
+	std::string texCoordX = "inTexCoord.x";
+	std::string texCoordY = "inTexCoord.y";
+
+	if (m_params.unnormalizedCoordinates)
+	{
+		texCoordX += " * pushc.texWidth";
+		texCoordY += " * pushc.texHeight";
+	}
+
+	vertexShader
+		<< "#version 450\n"
+		<< "\n"
+		<< "layout(push_constant, std430) uniform PushConstants\n"
+		<< "{\n"
+		<< "    float texWidth;\n"
+		<< "    float texHeight;\n"
+		<< "} pushc;\n"
+		<< "\n"
+		<< "layout(location = 0) in vec2 inPosition;\n"
+		<< "layout(location = 1) in vec2 inTexCoord;\n"
+		<< "\n"
+		<< "layout(location = 0) out vec2 fragTexCoord;\n"
+		<< "\n"
+		<< "void main() {\n"
+		<< "    gl_Position = vec4(inPosition, 0.0, 1.0);\n"
+		<< "    fragTexCoord = vec2(" << texCoordX << ", " << texCoordY << ");\n"
+		<< "}\n"
+		;
+
+	programCollection.glslSources.add("vert") << glu::VertexSource{vertexShader.str()};
+
+	std::ostringstream fragmentShader;
+
+	std::string typePrefix;
+	if (vk::isIntFormat(m_params.format))
+		typePrefix = "i";
+	else if (vk::isUintFormat(m_params.format))
+		typePrefix = "u";
+
+	const std::string samplerType = typePrefix + "sampler2D";
+	const std::string colorType = typePrefix + "vec4";
+
+	fragmentShader
+		<< "#version 450\n"
+		<< "\n"
+		<< "layout(set = 0, binding = 0) uniform " << samplerType << " texSampler;\n"
+		<< "\n"
+		<< "layout(location = 0) in vec2 fragTexCoord;\n"
+		<< "\n"
+		<< "layout(location = 0) out " << colorType << " outColor;\n"
+		<< "\n"
+		<< "void main() {\n"
+		<< "    outColor = texture(texSampler, fragTexCoord);\n"
+		<< "}\n"
+		;
+
+	programCollection.glslSources.add("frag") << glu::FragmentSource{fragmentShader.str()};
+}
+
+TestInstance* ExactSamplingCase::createInstance (Context& context) const
+{
+	return new ExactSamplingInstance{context, m_params};
+}
+
+void ExactSamplingCase::checkSupport (Context& context) const
+{
+	const auto&						vki					= context.getInstanceInterface();
+	const auto						physicalDevice		= context.getPhysicalDevice();
+	const auto						props				= vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, m_params.format);
+	const vk::VkFormatFeatureFlags	requiredFeatures	=
+		(vk::VK_FORMAT_FEATURE_TRANSFER_DST_BIT
+		|vk::VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
+		|vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
+		|vk::VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
+		);
+
+	if ((props.optimalTilingFeatures & requiredFeatures) != requiredFeatures)
+		TCU_THROW(NotSupportedError, "Selected format does not support the required features");
+}
+
+ExactSamplingInstance::ExactSamplingInstance (Context& context, const Params& params)
+	: vkt::TestInstance{context}, m_params(params)
+{
+}
+
+vk::VkExtent3D ExactSamplingInstance::getTextureExtent (void) const
+{
+	return vk::makeExtent3D(256u, 256u, 1u);
+}
+
+tcu::TestStatus ExactSamplingInstance::iterate (void)
+{
+	const auto&	vkd			= m_context.getDeviceInterface();
+	const auto	device		= m_context.getDevice();
+	auto&		allocator	= m_context.getDefaultAllocator();
+	const auto	queue		= m_context.getUniversalQueue();
+	const auto	queueIndex	= m_context.getUniversalQueueFamilyIndex();
+
+	const auto	tcuFormat	= vk::mapVkFormat(m_params.format);
+	const auto	formatInfo	= tcu::getTextureFormatInfo(tcuFormat);
+	const auto	texExtent	= getTextureExtent();
+	const auto	texUsage	= (vk::VK_IMAGE_USAGE_TRANSFER_DST_BIT | vk::VK_IMAGE_USAGE_SAMPLED_BIT);
+	const auto	fbUsage		= (vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT | vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT);
+	const auto	descType	= vk::VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
+	const auto	texLayout	= vk::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+
+	// Some code below depends on this.
+	DE_ASSERT(texExtent.depth == 1u);
+
+	const vk::VkImageCreateInfo texImgCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType;
+		nullptr,									// const void*				pNext;
+		0u,											// VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						// VkImageType				imageType;
+		m_params.format,							// VkFormat					format;
+		texExtent,									// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		1u,											// deUint32					arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					// VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling			tiling;
+		texUsage,									// VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueIndex,								// const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				// VkImageLayout			initialLayout;
+	};
+
+	const vk::VkImageCreateInfo fbImgCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType;
+		nullptr,									// const void*				pNext;
+		0u,											// VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						// VkImageType				imageType;
+		m_params.format,							// VkFormat					format;
+		texExtent,									// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		1u,											// deUint32					arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					// VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling			tiling;
+		fbUsage,									// VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueIndex,								// const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				// VkImageLayout			initialLayout;
+	};
+
+	// Create main and framebuffer images.
+	const vk::ImageWithMemory texImage	{vkd, device, allocator, texImgCreateInfo,	vk::MemoryRequirement::Any};
+	const vk::ImageWithMemory fbImage	{vkd, device, allocator, fbImgCreateInfo,	vk::MemoryRequirement::Any};
+
+	// Corresponding image views.
+	const auto colorSubresourceRange	= vk::makeImageSubresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+	const auto texView					= vk::makeImageView(vkd, device, texImage.get(),	vk::VK_IMAGE_VIEW_TYPE_2D, m_params.format, colorSubresourceRange);
+	const auto fbView					= vk::makeImageView(vkd, device, fbImage.get(),		vk::VK_IMAGE_VIEW_TYPE_2D, m_params.format, colorSubresourceRange);
+
+	// Buffers to create the texture and verify results.
+	const vk::VkDeviceSize		texBufferSize		= static_cast<vk::VkDeviceSize>(static_cast<deUint32>(tcu::getPixelSize(tcuFormat)) * texExtent.width * texExtent.height * texExtent.depth);
+	const auto					texBufferInfo		= vk::makeBufferCreateInfo(texBufferSize, vk::VK_BUFFER_USAGE_TRANSFER_SRC_BIT);
+	const auto					resultsBufferInfo	= vk::makeBufferCreateInfo(texBufferSize, vk::VK_BUFFER_USAGE_TRANSFER_DST_BIT);
+	const vk::BufferWithMemory	texBuffer			{vkd, device, allocator, texBufferInfo, vk::MemoryRequirement::HostVisible};
+	const vk::BufferWithMemory	resultsBuffer		{vkd, device, allocator, resultsBufferInfo, vk::MemoryRequirement::HostVisible};
+
+	// Create texture.
+	const tcu::IVec2					iImgSize		{static_cast<int>(texExtent.width), static_cast<int>(texExtent.height)};
+	auto&								texBufferAlloc	= texBuffer.getAllocation();
+	auto								texBufferPtr	= reinterpret_cast<char*>(texBufferAlloc.getHostPtr()) + texBufferAlloc.getOffset();
+	const tcu::PixelBufferAccess		texPixels		{tcuFormat, iImgSize[0], iImgSize[1], 1, texBufferPtr};
+
+	const int W = texPixels.getWidth();
+	const int H = texPixels.getHeight();
+	const int D = texPixels.getDepth();
+
+	const float divX = static_cast<float>(W - 1);
+	const float divY = static_cast<float>(H - 1);
+
+	for (int x = 0; x < W; ++x)
+	for (int y = 0; y < H; ++y)
+	for (int z = 0; z < D; ++z)
+	{
+		const float colorX = static_cast<float>(x) / divX;
+		const float colorY = static_cast<float>(y) / divY;
+		const float colorZ = std::min(colorX, colorY);
+
+		tcu::Vec4 color{colorX, colorY, colorZ, 1.0f};
+		tcu::Vec4 finalColor = (color - formatInfo.lookupBias) / formatInfo.lookupScale;
+		texPixels.setPixel(finalColor, x, y, z);
+	}
+
+	vk::flushAlloc(vkd, device, texBufferAlloc);
+
+	const std::vector<ExactSamplingCase::VertexData> fullScreenQuad =
+	{
+		{{  1.f, -1.f }, { 1.f, 0.f }, },
+		{{ -1.f, -1.f }, { 0.f, 0.f }, },
+		{{ -1.f,  1.f }, { 0.f, 1.f }, },
+		{{ -1.f,  1.f }, { 0.f, 1.f }, },
+		{{  1.f, -1.f }, { 1.f, 0.f }, },
+		{{  1.f,  1.f }, { 1.f, 1.f }, },
+	};
+
+	// Vertex buffer.
+	const vk::VkDeviceSize		vertexBufferSize	= static_cast<vk::VkDeviceSize>(fullScreenQuad.size() * sizeof(decltype(fullScreenQuad)::value_type));
+	const auto					vertexBufferInfo	= vk::makeBufferCreateInfo(vertexBufferSize, vk::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
+	const vk::BufferWithMemory	vertexBuffer		{vkd, device, allocator, vertexBufferInfo, vk::MemoryRequirement::HostVisible};
+
+	// Copy data to vertex buffer.
+	const auto&	vertexAlloc		= vertexBuffer.getAllocation();
+	const auto	vertexDataPtr	= reinterpret_cast<char*>(vertexAlloc.getHostPtr()) + vertexAlloc.getOffset();
+	deMemcpy(vertexDataPtr, fullScreenQuad.data(), static_cast<size_t>(vertexBufferSize));
+	vk::flushAlloc(vkd, device, vertexAlloc);
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder layoutBuilder;
+	layoutBuilder.addSingleBinding(descType, vk::VK_SHADER_STAGE_FRAGMENT_BIT);
+	const auto descriptorSetLayout = layoutBuilder.build(vkd, device);
+
+	// Descriptor pool.
+	vk::DescriptorPoolBuilder poolBuilder;
+	poolBuilder.addType(descType);
+	const auto descriptorPool = poolBuilder.build(vkd, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+	// Descriptor set.
+	const auto descriptorSet = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+
+	// Texture sampler.
+	const vk::VkSamplerCreateInfo samplerCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,		// VkStructureType		sType;
+		nullptr,										// const void*			pNext;
+		0u,												// VkSamplerCreateFlags	flags;
+		vk::VK_FILTER_NEAREST,							// VkFilter				magFilter;
+		vk::VK_FILTER_NEAREST,							// VkFilter				minFilter;
+		vk::VK_SAMPLER_MIPMAP_MODE_NEAREST,				// VkSamplerMipmapMode	mipmapMode;
+		vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// VkSamplerAddressMode	addressModeU;
+		vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// VkSamplerAddressMode	addressModeV;
+		vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// VkSamplerAddressMode	addressModeW;
+		0.0f,											// float				mipLodBias;
+		VK_FALSE,										// VkBool32				anisotropyEnable;
+		1.0f,											// float				maxAnisotropy;
+		VK_FALSE,										// VkBool32				compareEnable;
+		vk::VK_COMPARE_OP_NEVER,						// VkCompareOp			compareOp;
+		0.0f,											// float				minLod;
+		0.0f,											// float				maxLod;
+		vk::VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,			// VkBorderColor		borderColor;
+		(m_params.unnormalizedCoordinates ? VK_TRUE : VK_FALSE),// VkBool32				unnormalizedCoordinates;
+	};
+	const auto texSampler = vk::createSampler(vkd, device, &samplerCreateInfo);
+
+	// Update descriptor set with the descriptor.
+	vk::DescriptorSetUpdateBuilder updateBuilder;
+	const auto descriptorImageInfo = vk::makeDescriptorImageInfo(texSampler.get(), texView.get(), texLayout);
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), descType, &descriptorImageInfo);
+	updateBuilder.update(vkd, device);
+
+	// Shader modules.
+	const auto vertexModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0u);
+	const auto fragModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0u);
+
+	// Render pass.
+	const vk::VkAttachmentDescription fbAttachment =
+	{
+		0u,												// VkAttachmentDescriptionFlags	flags;
+		m_params.format,								// VkFormat						format;
+		vk::VK_SAMPLE_COUNT_1_BIT,						// VkSampleCountFlagBits		samples;
+		vk::VK_ATTACHMENT_LOAD_OP_CLEAR,				// VkAttachmentLoadOp			loadOp;
+		vk::VK_ATTACHMENT_STORE_OP_STORE,				// VkAttachmentStoreOp			storeOp;
+		vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			// VkAttachmentLoadOp			stencilLoadOp;
+		vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			// VkAttachmentStoreOp			stencilStoreOp;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,					// VkImageLayout				initialLayout;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout				finalLayout;
+	};
+
+	const vk::VkAttachmentReference colorRef =
+	{
+		0u,												// deUint32			attachment;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout	layout;
+	};
+
+	const vk::VkSubpassDescription subpass =
+	{
+		0u,										// VkSubpassDescriptionFlags		flags;
+		vk::VK_PIPELINE_BIND_POINT_GRAPHICS,	// VkPipelineBindPoint				pipelineBindPoint;
+		0u,										// deUint32							inputAttachmentCount;
+		nullptr,								// const VkAttachmentReference*		pInputAttachments;
+		1u,										// deUint32							colorAttachmentCount;
+		&colorRef,								// const VkAttachmentReference*		pColorAttachments;
+		0u,										// const VkAttachmentReference*		pResolveAttachments;
+		nullptr,								// const VkAttachmentReference*		pDepthStencilAttachment;
+		0u,										// deUint32							preserveAttachmentCount;
+		nullptr,								// const deUint32*					pPreserveAttachments;
+	};
+
+	const vk::VkRenderPassCreateInfo renderPassInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,	// VkStructureType					sType;
+		nullptr,										// const void*						pNext;
+		0u,												// VkRenderPassCreateFlags			flags;
+		1u,												// deUint32							attachmentCount;
+		&fbAttachment,									// const VkAttachmentDescription*	pAttachments;
+		1u,												// deUint32							subpassCount;
+		&subpass,										// const VkSubpassDescription*		pSubpasses;
+		0u,												// deUint32							dependencyCount;
+		nullptr,										// const VkSubpassDependency*		pDependencies;
+	};
+	const auto renderPass = vk::createRenderPass(vkd, device, &renderPassInfo);
+
+	// Framebuffer.
+	std::vector<vk::VkImageView> attachments;
+	attachments.push_back(fbView.get());
+	const auto framebuffer = vk::makeFramebuffer(vkd, device, renderPass.get(), 1u, &fbView.get(), texExtent.width, texExtent.height, texExtent.depth);
+
+	// Push constant range.
+	const vk::VkPushConstantRange pcRange =
+	{
+		vk::VK_SHADER_STAGE_VERTEX_BIT,										// VkShaderStageFlags	stageFlags;
+		0u,																	// deUint32				offset;
+		static_cast<deUint32>(sizeof(ExactSamplingCase::PushConstants)),	// deUint32				size;
+	};
+
+	// Pipeline layout.
+	const vk::VkPipelineLayoutCreateInfo pipelineLayoutInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,	// VkStructureType					sType;
+		nullptr,											// const void*						pNext;
+		0u,													// VkPipelineLayoutCreateFlags		flags;
+		1u,													// deUint32							setLayoutCount;
+		&descriptorSetLayout.get(),							// const VkDescriptorSetLayout*		pSetLayouts;
+		1u,													// deUint32							pushConstantRangeCount;
+		&pcRange,											// const VkPushConstantRange*		pPushConstantRanges;
+	};
+	const auto pipelineLayout = vk::createPipelineLayout(vkd, device, &pipelineLayoutInfo);
+
+	// Graphics pipeline.
+	const std::vector<vk::VkViewport>	viewports	(1u, vk::makeViewport(texExtent));
+	const vk::VkRect2D					renderArea	= vk::makeRect2D(texExtent);
+	const std::vector<vk::VkRect2D>		scissors	(1u, renderArea);
+
+	const auto vtxBindingDescription	= ExactSamplingCase::VertexData::getBindingDescription();
+	const auto vtxAttributeDescriptions	= ExactSamplingCase::VertexData::getAttributeDescriptions();
+
+	const vk::VkPipelineVertexInputStateCreateInfo vertexInputInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	// VkStructureType                             sType
+		nullptr,														// const void*                                 pNext
+		0u,																// VkPipelineVertexInputStateCreateFlags       flags
+		1u,																// deUint32                                    vertexBindingDescriptionCount
+		&vtxBindingDescription,											// const VkVertexInputBindingDescription*      pVertexBindingDescriptions
+		static_cast<deUint32>(vtxAttributeDescriptions.size()),			// deUint32                                    vertexAttributeDescriptionCount
+		vtxAttributeDescriptions.data(),								// const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions
+	};
+
+	const auto pipeline = vk::makeGraphicsPipeline(
+		vkd, device, pipelineLayout.get(),
+		vertexModule.get(), DE_NULL, DE_NULL, DE_NULL, fragModule.get(),
+		renderPass.get(), viewports, scissors,
+		vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0u, 0u, &vertexInputInfo);
+
+	// Command pool and command buffer.
+	const auto cmdPool		= vk::createCommandPool(vkd, device, vk::VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueIndex);
+	const auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd, device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	const auto cmdBuffer	= cmdBufferPtr.get();
+
+	// Draw quad.
+	const ExactSamplingCase::PushConstants pushConstants =
+	{
+		static_cast<float>(texExtent.width),
+		static_cast<float>(texExtent.height),
+	};
+
+	const tcu::Vec4			clearFbColor		(0.0f, 0.0f, 0.0f, 1.0f);
+	const vk::VkDeviceSize	vertexBufferOffset	= 0ull;
+
+	const auto vertexBufferBarrier	= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_HOST_WRITE_BIT, vk::VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, vertexBuffer.get(), 0ull, vertexBufferSize);
+	const auto preBufferCopyBarrier	= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_HOST_WRITE_BIT, vk::VK_ACCESS_TRANSFER_READ_BIT, texBuffer.get(), 0ull, texBufferSize);
+	const auto preTexCopyBarrier	= vk::makeImageMemoryBarrier(0u, vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, texImage.get(), colorSubresourceRange);
+	const auto postTexCopyBarrier	= vk::makeImageMemoryBarrier(vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_ACCESS_SHADER_READ_BIT, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, texLayout, texImage.get(), colorSubresourceRange);
+	const auto texCopyRange			= vk::makeImageSubresourceLayers(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u);
+	const auto texImageCopy			= vk::makeBufferImageCopy(texExtent, texCopyRange);
+
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, 0u, 0u, nullptr, 1u, &vertexBufferBarrier, 0u, nullptr);
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, nullptr, 1u, &preBufferCopyBarrier, 0u, nullptr);
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &preTexCopyBarrier);
+	vkd.cmdCopyBufferToImage(cmdBuffer, texBuffer.get(), texImage.get(), vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1u, &texImageCopy);
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, nullptr, 0u, nullptr, 1u, &postTexCopyBarrier);
+
+	vk::beginRenderPass(vkd, cmdBuffer, renderPass.get(), framebuffer.get(), renderArea, clearFbColor);
+	vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.get());
+	vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout.get(), 0u, 1u, &descriptorSet.get(), 0u, nullptr);
+	vkd.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &vertexBuffer.get(), &vertexBufferOffset);
+	vkd.cmdPushConstants(cmdBuffer, pipelineLayout.get(), vk::VK_SHADER_STAGE_VERTEX_BIT, 0u, static_cast<deUint32>(sizeof(pushConstants)), &pushConstants);
+	vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(fullScreenQuad.size()), 1u, 0u, 0u);
+	vk::endRenderPass(vkd, cmdBuffer);
+
+	vk::copyImageToBuffer(vkd, cmdBuffer, fbImage.get(), resultsBuffer.get(), iImgSize);
+
+	vk::endCommandBuffer(vkd, cmdBuffer);
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Check results.
+	const auto& resultsBufferAlloc = resultsBuffer.getAllocation();
+	vk::invalidateAlloc(vkd, device, resultsBufferAlloc);
+
+	const auto							resultsBufferPtr	= reinterpret_cast<const char*>(resultsBufferAlloc.getHostPtr()) + resultsBufferAlloc.getOffset();
+	const tcu::ConstPixelBufferAccess	resultPixels		{tcuFormat, iImgSize[0], iImgSize[1], 1, resultsBufferPtr};
+
+	const tcu::TextureFormat			diffFormat			{tcu::TextureFormat::RGB, tcu::TextureFormat::UNSIGNED_INT8};
+	const auto							diffBytes			= tcu::getPixelSize(diffFormat) * iImgSize[0] * iImgSize[1];
+	std::unique_ptr<deUint8[]>			diffData			{new deUint8[diffBytes]};
+	const tcu::PixelBufferAccess		diffImg				{diffFormat, iImgSize[0], iImgSize[1], 1, diffData.get()};
+
+	const tcu::Vec4						colorRed			{1.0f, 0.0f, 0.0f, 1.0f};
+	const tcu::Vec4						colorGreen			{0.0f, 1.0f, 0.0f, 1.0f};
+
+	// Clear diff image.
+	deMemset(diffData.get(), 0, static_cast<size_t>(diffBytes));
+
+	bool pass = true;
+	for (int x = 0; x < W; ++x)
+	for (int y = 0; y < H; ++y)
+	for (int z = 0; z < D; ++z)
+	{
+		const auto inPix	= texPixels.getPixel(x, y, z);
+		const auto outPix	= resultPixels.getPixel(x, y, z);
+		if (inPix == outPix)
+		{
+			diffImg.setPixel(colorGreen, x, y, z);
+		}
+		else
+		{
+			pass = false;
+			diffImg.setPixel(colorRed, x, y, z);
+		}
+	}
+
+	tcu::TestStatus status = tcu::TestStatus::pass("Pass");
+	if (!pass)
+	{
+		auto& log = m_context.getTestContext().getLog();
+		log << tcu::TestLog::Image("input", "Input texture", texPixels);
+		log << tcu::TestLog::Image("output", "Rendered image", resultPixels);
+		log << tcu::TestLog::Image("diff", "Mismatched pixels in red", diffImg);
+		status = tcu::TestStatus::fail("Pixel mismatch; please check the rendered image");
+	}
+
+	return status;
+}
+
 } // anonymous
 
 tcu::TestCaseGroup* createAllFormatsSamplerTests (tcu::TestContext& testCtx, bool separateStencilUsage = false)
 {
 	const struct
 	{
-		VkImageViewType		type;
+		SamplerViewType		type;
 		const char*			name;
 	}
 	imageViewTypes[] =
 	{
 		{ VK_IMAGE_VIEW_TYPE_1D,			"1d" },
+		{ { VK_IMAGE_VIEW_TYPE_1D, false },	"1d_unnormalized" },
 		{ VK_IMAGE_VIEW_TYPE_1D_ARRAY,		"1d_array" },
 		{ VK_IMAGE_VIEW_TYPE_2D,			"2d" },
+		{ { VK_IMAGE_VIEW_TYPE_2D, false },	"2d_unnormalized" },
 		{ VK_IMAGE_VIEW_TYPE_2D_ARRAY,		"2d_array" },
 		{ VK_IMAGE_VIEW_TYPE_3D,			"3d" },
 		{ VK_IMAGE_VIEW_TYPE_CUBE,			"cube" },
@@ -1135,7 +1738,7 @@
 
 	for (int viewTypeNdx = 0; viewTypeNdx < DE_LENGTH_OF_ARRAY(imageViewTypes); viewTypeNdx++)
 	{
-		const VkImageViewType			viewType		= imageViewTypes[viewTypeNdx].type;
+		const SamplerViewType			viewType		= imageViewTypes[viewTypeNdx].type;
 		de::MovePtr<tcu::TestCaseGroup>	viewTypeGroup	(new tcu::TestCaseGroup(testCtx, imageViewTypes[viewTypeNdx].name, (std::string("Uses a ") + imageViewTypes[viewTypeNdx].name + " view").c_str()));
 		de::MovePtr<tcu::TestCaseGroup>	formatTests		(new tcu::TestCaseGroup(testCtx, "format", "Tests samplable formats"));
 
@@ -1159,7 +1762,7 @@
 																				getFormatCaseName(format).c_str(),
 																				(std::string("Samples a texture of format ") + getFormatName(format)).c_str()));
 
-			if (!isCompressed)
+			if (!isCompressed && viewType.isNormalized())
 			{
 				// Do not include minFilter tests with compressed formats.
 				// Randomly generated compressed textures are too noisy and will derive in false positives.
@@ -1169,13 +1772,17 @@
 				formatGroup->addChild(minReduceFilterTests.release());
 			}
 
-			de::MovePtr<tcu::TestCaseGroup>	magFilterTests			= createSamplerMagFilterTests(testCtx, viewType, format, separateStencilUsage);
-			de::MovePtr<tcu::TestCaseGroup>	magReduceFilterTests	= createSamplerMagReduceFilterTests(testCtx, viewType, format, separateStencilUsage);
-			de::MovePtr<tcu::TestCaseGroup>	mipmapTests				= createSamplerMipmapTests(testCtx, viewType, format, separateStencilUsage);
-
+			de::MovePtr<tcu::TestCaseGroup>	magFilterTests = createSamplerMagFilterTests(testCtx, viewType, format, separateStencilUsage);
 			formatGroup->addChild(magFilterTests.release());
-			formatGroup->addChild(magReduceFilterTests.release());
-			formatGroup->addChild(mipmapTests.release());
+
+			if (viewType.isNormalized())
+			{
+				de::MovePtr<tcu::TestCaseGroup> magReduceFilterTests	= createSamplerMagReduceFilterTests(testCtx, viewType, format, separateStencilUsage);
+				de::MovePtr<tcu::TestCaseGroup> mipmapTests				= createSamplerMipmapTests(testCtx, viewType, format, separateStencilUsage);
+
+				formatGroup->addChild(magReduceFilterTests.release());
+				formatGroup->addChild(mipmapTests.release());
+			}
 
 			if (viewType != VK_IMAGE_VIEW_TYPE_CUBE && viewType != VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)
 			{
@@ -1193,11 +1800,80 @@
 	return viewTypeTests.release();
 }
 
+tcu::TestCaseGroup* createExactSamplingTests (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup> exactSamplingTests(new tcu::TestCaseGroup(testCtx, "exact_sampling", "Exact sampling tests"));
+
+	static const std::vector<vk::VkFormat> formats =
+	{
+		vk::VK_FORMAT_R8_SRGB,
+		vk::VK_FORMAT_R8G8B8_UINT,
+		vk::VK_FORMAT_B8G8R8A8_SINT,
+		vk::VK_FORMAT_R8G8_UNORM,
+		vk::VK_FORMAT_B8G8R8_SNORM,
+		vk::VK_FORMAT_R8G8B8A8_SNORM,
+		vk::VK_FORMAT_R8G8_UINT,
+		vk::VK_FORMAT_R8_SINT,
+		vk::VK_FORMAT_R8G8B8A8_SRGB,
+		vk::VK_FORMAT_R8G8B8A8_UNORM,
+		vk::VK_FORMAT_B8G8R8A8_UNORM,
+		vk::VK_FORMAT_B8G8R8_SRGB,
+		vk::VK_FORMAT_R8G8_SRGB,
+		vk::VK_FORMAT_R8_UINT,
+		vk::VK_FORMAT_R8G8B8A8_UINT,
+		vk::VK_FORMAT_R8G8_SINT,
+		vk::VK_FORMAT_R8_SNORM,
+		vk::VK_FORMAT_B8G8R8_SINT,
+		vk::VK_FORMAT_R8G8_SNORM,
+		vk::VK_FORMAT_B8G8R8_UNORM,
+		vk::VK_FORMAT_R8_UNORM,
+
+		vk::VK_FORMAT_R32G32_SFLOAT,
+		vk::VK_FORMAT_R32G32B32_UINT,
+		vk::VK_FORMAT_R16G16B16A16_SFLOAT,
+		vk::VK_FORMAT_R16G16_UINT,
+		vk::VK_FORMAT_R32G32B32A32_SINT,
+		vk::VK_FORMAT_R16G16B16_SINT,
+		vk::VK_FORMAT_R16_SFLOAT,
+		vk::VK_FORMAT_R32_SINT,
+		vk::VK_FORMAT_R32_UINT,
+		vk::VK_FORMAT_R16G16B16_SFLOAT,
+		vk::VK_FORMAT_R16G16_SINT,
+
+		vk::VK_FORMAT_R16_SNORM,
+		vk::VK_FORMAT_R32_SFLOAT,
+	};
+
+	static const std::vector<std::pair<bool, std::string>> unnormalizedCoordinates =
+	{
+		{ false,	"normalized_coords"		},
+		{ true,		"unnormalized_coords"	},
+	};
+
+	for (const auto format : formats)
+	{
+		const std::string formatName	= getFormatCaseName(format);
+		const std::string description	= std::string("Exact sampling tests with image format ") + getFormatName(format);
+
+		de::MovePtr<tcu::TestCaseGroup> formatGroup(new tcu::TestCaseGroup(testCtx, formatName.c_str(), description.c_str()));
+
+		for (const auto& unnorm : unnormalizedCoordinates)
+		{
+			const ExactSamplingCase::Params	params = { format, unnorm.first };
+			formatGroup->addChild(new ExactSamplingCase{testCtx, unnorm.second, "", params});
+		}
+		exactSamplingTests->addChild(formatGroup.release());
+	}
+
+	return exactSamplingTests.release();
+}
+
 tcu::TestCaseGroup* createSamplerTests (tcu::TestContext& testCtx)
 {
 	de::MovePtr<tcu::TestCaseGroup> samplerTests(new tcu::TestCaseGroup(testCtx, "sampler", "Sampler tests"));
 	{
 		samplerTests->addChild(createAllFormatsSamplerTests(testCtx));
+		samplerTests->addChild(createExactSamplingTests(testCtx));
 	}
 
 	// tests for VK_EXT_separate_stencil_usage
diff --git a/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt b/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt
index 8d6c3fd..dff4afb 100644
--- a/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt
@@ -12,6 +12,8 @@
 	vktQueryPoolPerformanceTests.cpp
 	vktQueryPoolStatisticsTests.hpp
 	vktQueryPoolStatisticsTests.cpp
+	vktQueryPoolConcurrentTests.hpp
+	vktQueryPoolConcurrentTests.cpp
 )
 
 set(DEQP_VK_QUERY_POOL_LIBS
@@ -24,4 +26,3 @@
 
 add_library(deqp-vk-query-pool STATIC ${DEQP_VK_QUERY_POOL_SRCS})
 target_link_libraries(deqp-vk-query-pool ${DEQP_VK_QUERY_POOL_LIBS})
-
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.cpp
new file mode 100644
index 0000000..c82c0c6
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.cpp
@@ -0,0 +1,902 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Valve Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Concurrent Query Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktQueryPoolConcurrentTests.hpp"
+
+#include "vktTestCase.hpp"
+
+#include "vktDrawImageObjectUtil.hpp"
+#include "vktDrawBufferObjectUtil.hpp"
+#include "vktDrawCreateInfoUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkRef.hpp"
+#include "vkRefUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkQueryUtil.hpp"
+
+#include "tcuTestLog.hpp"
+#include "tcuImageCompare.hpp"
+
+#include <memory>
+
+namespace vkt
+{
+
+namespace QueryPool
+{
+
+using namespace Draw;
+
+namespace
+{
+
+enum QueryType
+{
+	QUERY_TYPE_OCCLUSION = vk::VK_QUERY_TYPE_OCCLUSION,
+	QUERY_TYPE_PIPELINE_STATISTICS = vk::VK_QUERY_TYPE_PIPELINE_STATISTICS,
+	QUERY_TYPE_TIMESTAMP = vk::VK_QUERY_TYPE_TIMESTAMP,
+	NUM_QUERY_POOLS = 3
+};
+
+struct StateObjects
+{
+			StateObjects	(const vk::DeviceInterface&vk, vkt::Context &context, const int numVertices, vk::VkPrimitiveTopology primitive);
+	void	setVertices		(const vk::DeviceInterface&vk, std::vector<tcu::Vec4> vertices);
+
+	enum
+	{
+		WIDTH	= 128,
+		HEIGHT	= 128
+	};
+
+	vkt::Context &m_context;
+
+	vk::Move<vk::VkPipeline>		m_pipeline;
+	vk::Move<vk::VkPipelineLayout>	m_pipelineLayout;
+
+	de::SharedPtr<Image>			m_colorAttachmentImage, m_DepthImage;
+	vk::Move<vk::VkImageView>		m_attachmentView;
+	vk::Move<vk::VkImageView>		m_depthiew;
+
+	vk::Move<vk::VkRenderPass>		m_renderPass;
+	vk::Move<vk::VkFramebuffer>		m_framebuffer;
+
+	de::SharedPtr<Buffer>			m_vertexBuffer;
+
+	vk::VkFormat					m_colorAttachmentFormat;
+};
+
+StateObjects::StateObjects (const vk::DeviceInterface&vk, vkt::Context &context, const int numVertices, vk::VkPrimitiveTopology primitive)
+	: m_context(context)
+	, m_colorAttachmentFormat(vk::VK_FORMAT_R8G8B8A8_UNORM)
+
+{
+	vk::VkFormat		depthFormat = vk::VK_FORMAT_D16_UNORM;
+	const vk::VkDevice	device		= m_context.getDevice();
+
+	//attachment images and views
+	{
+		vk::VkExtent3D imageExtent =
+		{
+			WIDTH,	// width;
+			HEIGHT,	// height;
+			1		// depth;
+		};
+
+		const ImageCreateInfo colorImageCreateInfo(vk::VK_IMAGE_TYPE_2D, m_colorAttachmentFormat, imageExtent, 1, 1, vk::VK_SAMPLE_COUNT_1_BIT, vk::VK_IMAGE_TILING_OPTIMAL,
+												   vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
+
+		m_colorAttachmentImage	= Image::createAndAlloc(vk, device, colorImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
+
+		const ImageViewCreateInfo attachmentViewInfo(m_colorAttachmentImage->object(), vk::VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
+		m_attachmentView		= vk::createImageView(vk, device, &attachmentViewInfo);
+
+		ImageCreateInfo depthImageCreateInfo(vk::VK_IMAGE_TYPE_2D, depthFormat, imageExtent, 1, 1, vk::VK_SAMPLE_COUNT_1_BIT, vk::VK_IMAGE_TILING_OPTIMAL,
+			vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT);
+
+		m_DepthImage			= Image::createAndAlloc(vk, device, depthImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
+
+		// Construct a depth  view from depth image
+		const ImageViewCreateInfo depthViewInfo(m_DepthImage->object(), vk::VK_IMAGE_VIEW_TYPE_2D, depthFormat);
+		m_depthiew				= vk::createImageView(vk, device, &depthViewInfo);
+	}
+
+	{
+		// Renderpass and Framebuffer
+
+		RenderPassCreateInfo renderPassCreateInfo;
+		renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,									// format
+																	vk::VK_SAMPLE_COUNT_1_BIT,								// samples
+																	vk::VK_ATTACHMENT_LOAD_OP_CLEAR,						// loadOp
+																	vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,					// storeOp
+																	vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,					// stencilLoadOp
+																	vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,					// stencilLoadOp
+																	vk::VK_IMAGE_LAYOUT_GENERAL,							// initialLauout
+																	vk::VK_IMAGE_LAYOUT_GENERAL));							// finalLayout
+
+		renderPassCreateInfo.addAttachment(AttachmentDescription(depthFormat,												// format
+																 vk::VK_SAMPLE_COUNT_1_BIT,									// samples
+																 vk::VK_ATTACHMENT_LOAD_OP_CLEAR,							// loadOp
+																 vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,						// storeOp
+																 vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,						// stencilLoadOp
+																 vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,						// stencilLoadOp
+																 vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,		// initialLauout
+																 vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL));	// finalLayout
+
+		const vk::VkAttachmentReference colorAttachmentReference =
+		{
+			0,															// attachment
+			vk::VK_IMAGE_LAYOUT_GENERAL									// layout
+		};
+
+		const vk::VkAttachmentReference depthAttachmentReference =
+		{
+			1,															// attachment
+			vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL		// layout
+		};
+
+		renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,					// pipelineBindPoint
+														   0,													// flags
+														   0,													// inputCount
+														   DE_NULL,												// pInputAttachments
+														   1,													// colorCount
+														   &colorAttachmentReference,							// pColorAttachments
+														   DE_NULL,												// pResolveAttachments
+														   depthAttachmentReference,							// depthStencilAttachment
+														   0,													// preserveCount
+														   DE_NULL));											// preserveAttachments
+
+		m_renderPass = vk::createRenderPass(vk, device, &renderPassCreateInfo);
+
+		std::vector<vk::VkImageView> attachments(2);
+		attachments[0] = *m_attachmentView;
+		attachments[1] = *m_depthiew;
+
+		FramebufferCreateInfo framebufferCreateInfo(*m_renderPass, attachments, WIDTH, HEIGHT, 1);
+		m_framebuffer = vk::createFramebuffer(vk, device, &framebufferCreateInfo);
+	}
+
+	{
+		// Pipeline
+
+		vk::Unique<vk::VkShaderModule> vs(vk::createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0));
+		vk::Unique<vk::VkShaderModule> fs(vk::createShaderModule(vk, device, m_context.getBinaryCollection().get("frag"), 0));
+
+		const PipelineCreateInfo::ColorBlendState::Attachment attachmentState;
+
+		const PipelineLayoutCreateInfo pipelineLayoutCreateInfo;
+		m_pipelineLayout = vk::createPipelineLayout(vk, device, &pipelineLayoutCreateInfo);
+
+		const vk::VkVertexInputBindingDescription vf_binding_desc		=
+		{
+			0,																// binding;
+			4 * (deUint32)sizeof(float),									// stride;
+			vk::VK_VERTEX_INPUT_RATE_VERTEX									// inputRate
+		};
+
+		const vk::VkVertexInputAttributeDescription vf_attribute_desc	=
+		{
+			0,																// location;
+			0,																// binding;
+			vk::VK_FORMAT_R32G32B32A32_SFLOAT,								// format;
+			0																// offset;
+		};
+
+		const vk::VkPipelineVertexInputStateCreateInfo vf_info			=
+		{																	// sType;
+			vk::VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	// pNext;
+			NULL,															// flags;
+			0u,																// vertexBindingDescriptionCount;
+			1,																// pVertexBindingDescriptions;
+			&vf_binding_desc,												// vertexAttributeDescriptionCount;
+			1,																// pVertexAttributeDescriptions;
+			&vf_attribute_desc
+		};
+
+		PipelineCreateInfo pipelineCreateInfo(*m_pipelineLayout, *m_renderPass, 0, 0);
+		pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*vs, "main", vk::VK_SHADER_STAGE_VERTEX_BIT));
+		pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*fs, "main", vk::VK_SHADER_STAGE_FRAGMENT_BIT));
+		pipelineCreateInfo.addState(PipelineCreateInfo::InputAssemblerState(primitive));
+		pipelineCreateInfo.addState(PipelineCreateInfo::ColorBlendState(1, &attachmentState));
+		const vk::VkViewport viewport	= vk::makeViewport(WIDTH, HEIGHT);
+		const vk::VkRect2D scissor		= vk::makeRect2D(WIDTH, HEIGHT);
+		pipelineCreateInfo.addState(PipelineCreateInfo::ViewportState(1, std::vector<vk::VkViewport>(1, viewport), std::vector<vk::VkRect2D>(1, scissor)));
+		pipelineCreateInfo.addState(PipelineCreateInfo::DepthStencilState(true, true, vk::VK_COMPARE_OP_GREATER_OR_EQUAL));
+		pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
+		pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState());
+		pipelineCreateInfo.addState(vf_info);
+		m_pipeline = vk::createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
+	}
+
+	{
+		// Vertex buffer
+		const size_t kBufferSize = numVertices * sizeof(tcu::Vec4);
+		m_vertexBuffer = Buffer::createAndAlloc(vk, device, BufferCreateInfo(kBufferSize, vk::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), m_context.getDefaultAllocator(), vk::MemoryRequirement::HostVisible);
+	}
+}
+
+void StateObjects::setVertices (const vk::DeviceInterface&vk, std::vector<tcu::Vec4> vertices)
+{
+	const vk::VkDevice device			= m_context.getDevice();
+
+	tcu::Vec4 *ptr = reinterpret_cast<tcu::Vec4*>(m_vertexBuffer->getBoundMemory().getHostPtr());
+	std::copy(vertices.begin(), vertices.end(), ptr);
+
+	vk::flushAlloc(vk, device,	m_vertexBuffer->getBoundMemory());
+}
+
+class PrimaryCommandBufferConcurrentTestInstance : public vkt::TestInstance
+{
+public:
+	PrimaryCommandBufferConcurrentTestInstance		(vkt::Context &context);
+	~PrimaryCommandBufferConcurrentTestInstance		(void);
+private:
+	tcu::TestStatus					iterate							(void);
+
+	enum
+	{
+		NUM_QUERIES_IN_POOL				= 2,
+		QUERY_INDEX_CAPTURE_EMPTY		= 0,
+		QUERY_INDEX_CAPTURE_DRAWCALL	= 1,
+		NUM_VERTICES_IN_DRAWCALL		= 3
+	};
+
+	std::unique_ptr<StateObjects>		m_stateObjects;
+	vk::Move<vk::VkQueryPool>			m_queryPools[NUM_QUERY_POOLS];
+	deBool								m_supportedQueryType[NUM_QUERY_POOLS];
+};
+
+PrimaryCommandBufferConcurrentTestInstance::PrimaryCommandBufferConcurrentTestInstance (vkt::Context &context)
+	: TestInstance		(context)
+{
+	// Check support for multiple query types
+	{
+		for(deUint32 poolNdx = 0; poolNdx < NUM_QUERY_POOLS; poolNdx++)
+			m_supportedQueryType[poolNdx] = DE_FALSE;
+
+		deUint32 numSupportedQueryTypes = 0;
+		m_supportedQueryType[QUERY_TYPE_OCCLUSION] = DE_TRUE;
+		numSupportedQueryTypes++;
+
+		if (context.getDeviceFeatures().pipelineStatisticsQuery)
+		{
+			m_supportedQueryType[QUERY_TYPE_PIPELINE_STATISTICS] = DE_TRUE;
+			numSupportedQueryTypes++;
+		}
+
+		// Check support for timestamp queries
+		{
+			const deUint32									queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
+			const std::vector<vk::VkQueueFamilyProperties>	queueProperties		= vk::getPhysicalDeviceQueueFamilyProperties(context.getInstanceInterface(), context.getPhysicalDevice());
+
+			DE_ASSERT(queueFamilyIndex < (deUint32)queueProperties.size());
+
+			if (queueProperties[queueFamilyIndex].timestampValidBits)
+			 {
+				 m_supportedQueryType[QUERY_TYPE_TIMESTAMP] = DE_TRUE;
+				 numSupportedQueryTypes++;
+			 }
+		}
+		if (numSupportedQueryTypes < 2)
+			throw tcu::NotSupportedError("Device does not support multiple query types");
+	}
+
+	m_stateObjects = std::unique_ptr<StateObjects>(new StateObjects(m_context.getDeviceInterface(), m_context, NUM_VERTICES_IN_DRAWCALL, vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST));
+
+	const vk::VkDevice			device	= m_context.getDevice();
+	const vk::DeviceInterface&	vk		= m_context.getDeviceInterface();
+
+	for(deUint32 poolNdx = 0; poolNdx < NUM_QUERY_POOLS; poolNdx++)
+	{
+		if (!m_supportedQueryType[poolNdx])
+			continue;
+
+		vk::VkQueryPoolCreateInfo queryPoolCreateInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
+			DE_NULL,
+			0u,
+			static_cast<vk::VkQueryType>(poolNdx),
+			NUM_QUERIES_IN_POOL,
+			0u,
+		};
+		if (poolNdx == QUERY_TYPE_PIPELINE_STATISTICS)
+			queryPoolCreateInfo.pipelineStatistics = vk::VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT;
+
+		m_queryPools[poolNdx] = createQueryPool(vk, device, &queryPoolCreateInfo, /*pAllocator*/ DE_NULL);
+	}
+
+	std::vector<tcu::Vec4> vertices(NUM_VERTICES_IN_DRAWCALL);
+	vertices[0] = tcu::Vec4(0.5, 0.5, 0.0, 1.0);
+	vertices[1] = tcu::Vec4(0.5, 0.0, 0.0, 1.0);
+	vertices[2] = tcu::Vec4(0.0, 0.5, 0.0, 1.0);
+	m_stateObjects->setVertices(vk, vertices);
+}
+
+PrimaryCommandBufferConcurrentTestInstance::~PrimaryCommandBufferConcurrentTestInstance (void)
+{
+}
+
+tcu::TestStatus	PrimaryCommandBufferConcurrentTestInstance::iterate (void)
+{
+	tcu::TestLog &log				= m_context.getTestContext().getLog();
+	const vk::VkDevice device		= m_context.getDevice();
+	const vk::VkQueue queue			= m_context.getUniversalQueue();
+	const vk::DeviceInterface& vk	= m_context.getDeviceInterface();
+
+	const CmdPoolCreateInfo			cmdPoolCreateInfo	(m_context.getUniversalQueueFamilyIndex());
+	vk::Move<vk::VkCommandPool>		cmdPool				= vk::createCommandPool(vk, device, &cmdPoolCreateInfo);
+
+	vk::Unique<vk::VkCommandBuffer> cmdBuffer			(vk::allocateCommandBuffer(vk, device, *cmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+	beginCommandBuffer(vk, *cmdBuffer);
+
+	initialTransitionColor2DImage(vk, *cmdBuffer, m_stateObjects->m_colorAttachmentImage->object(), vk::VK_IMAGE_LAYOUT_GENERAL,
+								  vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT);
+	initialTransitionDepth2DImage(vk, *cmdBuffer, m_stateObjects->m_DepthImage->object(), vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+								  vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT);
+
+	std::vector<vk::VkClearValue> renderPassClearValues(2);
+	deMemset(&renderPassClearValues[0], 0, static_cast<int>(renderPassClearValues.size()) * sizeof(vk::VkClearValue));
+
+	for (deUint32 poolNdx = 0u; poolNdx < NUM_QUERY_POOLS; poolNdx++)
+	{
+		if (m_supportedQueryType[poolNdx])
+			vk.cmdResetQueryPool(*cmdBuffer, *m_queryPools[poolNdx], 0u, NUM_QUERIES_IN_POOL);
+	}
+
+	beginRenderPass(vk, *cmdBuffer, *m_stateObjects->m_renderPass, *m_stateObjects->m_framebuffer, vk::makeRect2D(0, 0, StateObjects::WIDTH, StateObjects::HEIGHT), (deUint32)renderPassClearValues.size(), &renderPassClearValues[0]);
+
+	vk.cmdBindPipeline(*cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_stateObjects->m_pipeline);
+
+	vk::VkBuffer vertexBuffer = m_stateObjects->m_vertexBuffer->object();
+	const vk::VkDeviceSize vertexBufferOffset = 0;
+	vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &vertexBuffer, &vertexBufferOffset);
+
+	// Begin all queries
+	for (deUint32 poolNdx = 0u; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+	{
+		if (m_supportedQueryType[poolNdx])
+			vk.cmdBeginQuery(*cmdBuffer, *m_queryPools[poolNdx], QUERY_INDEX_CAPTURE_EMPTY, 0u);
+	}
+
+	// End first capture (should not have any result). Start the second one.
+	for (deUint32 poolNdx = 0u; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+	{
+		if (m_supportedQueryType[poolNdx])
+		{
+			vk.cmdEndQuery(*cmdBuffer, *m_queryPools[poolNdx],	QUERY_INDEX_CAPTURE_EMPTY);
+			vk.cmdBeginQuery(*cmdBuffer, *m_queryPools[poolNdx], QUERY_INDEX_CAPTURE_DRAWCALL, 0u);
+		}
+	}
+
+	vk.cmdDraw(*cmdBuffer, NUM_VERTICES_IN_DRAWCALL, 1, 0, 0);
+
+	if (m_supportedQueryType[QUERY_TYPE_TIMESTAMP])
+		vk.cmdWriteTimestamp(*cmdBuffer, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, *m_queryPools[QUERY_TYPE_TIMESTAMP], QUERY_INDEX_CAPTURE_DRAWCALL);
+
+	for (deUint32 poolNdx = 0u; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+	{
+		if (m_supportedQueryType[poolNdx])
+			vk.cmdEndQuery(*cmdBuffer, *m_queryPools[poolNdx],	QUERY_INDEX_CAPTURE_DRAWCALL);
+	}
+
+	endRenderPass(vk, *cmdBuffer);
+
+	transition2DImage(vk, *cmdBuffer, m_stateObjects->m_colorAttachmentImage->object(), vk::VK_IMAGE_ASPECT_COLOR_BIT,
+					  vk::VK_IMAGE_LAYOUT_GENERAL, vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+					  vk::VK_ACCESS_TRANSFER_READ_BIT, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT);
+
+	endCommandBuffer(vk, *cmdBuffer);
+
+	submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
+
+	deUint64 queryResults[NUM_QUERIES_IN_POOL] = { 0 };
+	size_t queryResultsSize		= sizeof(queryResults);
+	bool passed = true;
+
+	// Occlusion and pipeline statistics queries verification
+	for (deUint32 poolNdx = 0; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+	{
+		if (m_supportedQueryType[poolNdx] == DE_FALSE)
+			continue;
+		vk::VkResult queryResult	= vk.getQueryPoolResults(device, *m_queryPools[poolNdx], 0, NUM_QUERIES_IN_POOL, queryResultsSize, queryResults, sizeof(queryResults[0]), vk::VK_QUERY_RESULT_64_BIT);
+
+		if (queryResult == vk::VK_NOT_READY)
+		{
+			TCU_FAIL("Query result not available, but vkWaitIdle() was called.");
+		}
+
+		VK_CHECK(queryResult);
+		std::string name = (poolNdx == QUERY_TYPE_OCCLUSION) ? "OcclusionQueryResults" : "PipelineStatisticsQueryResults";
+		std::string desc = (poolNdx == QUERY_TYPE_OCCLUSION) ? "Occlusion query results" : "PipelineStatistics query results";
+		log << tcu::TestLog::Section(name, desc);
+		for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(queryResults); ++ndx)
+		{
+			log << tcu::TestLog::Message << "query[slot == " << ndx
+				<< "] result == " << queryResults[ndx] << tcu::TestLog::EndMessage;
+		}
+
+
+		for (deUint32 queryNdx = 0; queryNdx < DE_LENGTH_OF_ARRAY(queryResults); ++queryNdx)
+		{
+			if (queryNdx == QUERY_INDEX_CAPTURE_EMPTY && queryResults[queryNdx] != 0u)
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"wrong value of query for index "
+					<< queryNdx << ", expected any zero value, got "
+					<< queryResults[0] << "." << tcu::TestLog::EndMessage;
+				passed = false;
+			}
+
+			if (queryNdx != QUERY_INDEX_CAPTURE_EMPTY && queryResults[queryNdx] == 0)
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"wrong value of query for index "
+					<< queryNdx << ", expected any non-zero value, got "
+					<< queryResults[0] << "." << tcu::TestLog::EndMessage;
+				passed = false;
+			}
+		}
+		log << tcu::TestLog::EndSection;
+	}
+
+	// Timestamp query verification
+	if (m_supportedQueryType[QUERY_TYPE_TIMESTAMP])
+	{
+		std::pair<deUint64, deUint64>	queryResultsWithAvailabilityBit[NUM_QUERIES_IN_POOL];
+		size_t queryResultsWithAvailabilityBitSize		= sizeof(queryResultsWithAvailabilityBit);
+		vk::VkResult queryResult	= vk.getQueryPoolResults(device, *m_queryPools[QUERY_TYPE_TIMESTAMP], 0, NUM_QUERIES_IN_POOL, queryResultsWithAvailabilityBitSize, &queryResultsWithAvailabilityBit[0], sizeof(queryResultsWithAvailabilityBit[0]), vk::VK_QUERY_RESULT_64_BIT | vk::VK_QUERY_RESULT_WITH_AVAILABILITY_BIT);
+
+		if (queryResult != vk::VK_NOT_READY)
+		{
+			TCU_FAIL("We don't have available one query, it should return VK_NOT_READY");
+		}
+
+		log << tcu::TestLog::Section("TimestampQueryResults",
+									 "Timestamp query results");
+		for (int ndx = 0; ndx < NUM_QUERIES_IN_POOL; ++ndx)
+		{
+			log << tcu::TestLog::Message << "query[slot == " << ndx
+				<< "] result == " << queryResultsWithAvailabilityBit[ndx].first << tcu::TestLog::EndMessage;
+		}
+
+
+		for (deUint32 queryNdx = 0; queryNdx < NUM_QUERIES_IN_POOL; ++queryNdx)
+		{
+			if (queryNdx == QUERY_INDEX_CAPTURE_EMPTY && (queryResultsWithAvailabilityBit[queryNdx].first != 0u || queryResultsWithAvailabilityBit[queryNdx].second != 0u))
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"either wrong value of query for index "
+					<< queryNdx << " (expected any zero value, got "
+					<< queryResultsWithAvailabilityBit[queryNdx].first << ") or the result is available (" << queryResultsWithAvailabilityBit[queryNdx].second << ")"
+					<< tcu::TestLog::EndMessage;
+				passed = false;
+			}
+
+			if (queryNdx != QUERY_INDEX_CAPTURE_EMPTY && (queryResultsWithAvailabilityBit[queryNdx].first == 0u || queryResultsWithAvailabilityBit[queryNdx].second == 0u))
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"either wrong value of query for index "
+					<< queryNdx << " (expected any non-zero value, got "
+					<< queryResults[0] << ") or result is unavailable." << tcu::TestLog::EndMessage;
+				passed = false;
+			}
+		}
+		log << tcu::TestLog::EndSection;
+	}
+
+	if (passed)
+	{
+		return tcu::TestStatus(QP_TEST_RESULT_PASS, "Query result verification passed");
+	}
+	return tcu::TestStatus(QP_TEST_RESULT_FAIL, "Query result verification failed");
+}
+
+class SecondaryCommandBufferConcurrentTestInstance : public vkt::TestInstance
+{
+public:
+	SecondaryCommandBufferConcurrentTestInstance		(vkt::Context &context);
+	~SecondaryCommandBufferConcurrentTestInstance		(void);
+private:
+	tcu::TestStatus					iterate							(void);
+
+	enum
+	{
+		NUM_QUERIES_IN_POOL				= 2,
+		QUERY_INDEX_CAPTURE_EMPTY		= 0,
+		QUERY_INDEX_CAPTURE_DRAWCALL	= 1,
+		NUM_VERTICES_IN_DRAWCALL		= 3
+	};
+
+	std::unique_ptr<StateObjects>			m_stateObjects;
+	vk::Move<vk::VkQueryPool>				m_queryPools[NUM_QUERY_POOLS];
+	deBool									m_supportedQueryType[NUM_QUERY_POOLS];
+
+};
+
+SecondaryCommandBufferConcurrentTestInstance::SecondaryCommandBufferConcurrentTestInstance (vkt::Context &context)
+	: TestInstance		(context)
+{
+	// Check support for multiple query types
+	{
+		for(deUint32 poolNdx = 0; poolNdx < NUM_QUERY_POOLS; poolNdx++)
+			m_supportedQueryType[poolNdx] = DE_FALSE;
+
+		deUint32 numSupportedQueryTypes = 0;
+		m_supportedQueryType[QUERY_TYPE_OCCLUSION] = DE_TRUE;
+		numSupportedQueryTypes++;
+
+		if (context.getDeviceFeatures().pipelineStatisticsQuery)
+		{
+			m_supportedQueryType[QUERY_TYPE_PIPELINE_STATISTICS] = DE_TRUE;
+			numSupportedQueryTypes++;
+		}
+
+		// Check support for timestamp queries
+		{
+			const deUint32									queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
+			const std::vector<vk::VkQueueFamilyProperties>	queueProperties		= vk::getPhysicalDeviceQueueFamilyProperties(context.getInstanceInterface(), context.getPhysicalDevice());
+
+			DE_ASSERT(queueFamilyIndex < (deUint32)queueProperties.size());
+
+			if (queueProperties[queueFamilyIndex].timestampValidBits)
+			 {
+				 m_supportedQueryType[QUERY_TYPE_TIMESTAMP] = DE_TRUE;
+				 numSupportedQueryTypes++;
+			 }
+		}
+		if (numSupportedQueryTypes < 2)
+			throw tcu::NotSupportedError("Device does not support multiple query types");
+	}
+
+	m_stateObjects = std::unique_ptr<StateObjects>(new StateObjects(m_context.getDeviceInterface(), m_context, NUM_VERTICES_IN_DRAWCALL, vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST));
+
+	const vk::VkDevice			device	= m_context.getDevice();
+	const vk::DeviceInterface&	vk		= m_context.getDeviceInterface();
+
+	for(deUint32 poolNdx = 0; poolNdx < NUM_QUERY_POOLS; poolNdx++)
+	{
+		if (!m_supportedQueryType[poolNdx])
+			continue;
+
+		vk::VkQueryPoolCreateInfo queryPoolCreateInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
+			DE_NULL,
+			0u,
+			static_cast<vk::VkQueryType>(poolNdx),
+			NUM_QUERIES_IN_POOL,
+			0u,
+		};
+		if (poolNdx == QUERY_TYPE_PIPELINE_STATISTICS)
+			queryPoolCreateInfo.pipelineStatistics = vk::VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT;
+
+		m_queryPools[poolNdx] = createQueryPool(vk, device, &queryPoolCreateInfo, /*pAllocator*/ DE_NULL);
+	}
+
+	std::vector<tcu::Vec4> vertices(NUM_VERTICES_IN_DRAWCALL);
+	vertices[0] = tcu::Vec4(0.5, 0.5, 0.0, 1.0);
+	vertices[1] = tcu::Vec4(0.5, 0.0, 0.0, 1.0);
+	vertices[2] = tcu::Vec4(0.0, 0.5, 0.0, 1.0);
+	m_stateObjects->setVertices(vk, vertices);
+}
+
+SecondaryCommandBufferConcurrentTestInstance::~SecondaryCommandBufferConcurrentTestInstance (void)
+{
+}
+
+void beginSecondaryCommandBuffer (const vk::DeviceInterface&				vk,
+								  const vk::VkCommandBuffer					secondaryCmdBuffer,
+								  const vk::VkCommandBufferInheritanceInfo	bufferInheritanceInfo)
+{
+	const vk::VkCommandBufferUsageFlags	flags		= bufferInheritanceInfo.renderPass != DE_NULL
+													  ? (vk::VkCommandBufferUsageFlags)vk::VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
+													  : (vk::VkCommandBufferUsageFlags)0u;
+	const vk::VkCommandBufferBeginInfo	beginInfo	=
+	{
+		vk::VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,			// sType
+		DE_NULL,													// pNext
+		flags,														// flags
+		&bufferInheritanceInfo,										// pInheritanceInfo
+	};
+	VK_CHECK(vk.beginCommandBuffer(secondaryCmdBuffer, &beginInfo));
+}
+
+tcu::TestStatus	SecondaryCommandBufferConcurrentTestInstance::iterate (void)
+{
+	tcu::TestLog &log				= m_context.getTestContext().getLog();
+	const vk::VkDevice device		= m_context.getDevice();
+	const vk::VkQueue queue			= m_context.getUniversalQueue();
+	const vk::DeviceInterface& vk	= m_context.getDeviceInterface();
+	const deBool inheritedQueries	= m_context.getDeviceFeatures().inheritedQueries;
+
+	const CmdPoolCreateInfo			cmdPoolCreateInfo	(m_context.getUniversalQueueFamilyIndex());
+	vk::Move<vk::VkCommandPool>		cmdPool				= vk::createCommandPool(vk, device, &cmdPoolCreateInfo);
+
+	vk::Unique<vk::VkCommandBuffer> cmdBufferPrimary			(vk::allocateCommandBuffer(vk, device, *cmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+	vk::Unique<vk::VkCommandBuffer> cmdBufferSecondary			(vk::allocateCommandBuffer(vk, device, *cmdPool, vk::VK_COMMAND_BUFFER_LEVEL_SECONDARY));
+
+	// Secondary command buffer recording.
+	{
+		// Begin secondary command buffer
+		const vk::VkCommandBufferInheritanceInfo	secCmdBufInheritInfo	=
+		{
+			vk::VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
+			DE_NULL,
+			*m_stateObjects->m_renderPass,								// renderPass
+			0u,															// subpass
+			*m_stateObjects->m_framebuffer,								// framebuffer
+			inheritedQueries ? VK_TRUE : VK_FALSE,						// occlusionQueryEnable
+			(vk::VkQueryControlFlags)0u,								// queryFlags
+			(vk::VkQueryPipelineStatisticFlags)0u,						// pipelineStatistics
+		};
+		beginSecondaryCommandBuffer(vk, *cmdBufferSecondary, secCmdBufInheritInfo);
+
+		vk.cmdBindPipeline(*cmdBufferSecondary, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_stateObjects->m_pipeline);
+		vk::VkBuffer vertexBuffer = m_stateObjects->m_vertexBuffer->object();
+		const vk::VkDeviceSize vertexBufferOffset = 0;
+		vk.cmdBindVertexBuffers(*cmdBufferSecondary, 0, 1, &vertexBuffer, &vertexBufferOffset);
+
+		if (!inheritedQueries && m_supportedQueryType[QUERY_TYPE_OCCLUSION])
+			vk.cmdBeginQuery(*cmdBufferSecondary, *m_queryPools[QUERY_TYPE_OCCLUSION], QUERY_INDEX_CAPTURE_DRAWCALL, 0u);
+
+		// Run pipeline statistics queries capture in the second command buffer
+		if (m_supportedQueryType[QUERY_TYPE_PIPELINE_STATISTICS])
+			vk.cmdBeginQuery(*cmdBufferSecondary, *m_queryPools[QUERY_TYPE_PIPELINE_STATISTICS], QUERY_INDEX_CAPTURE_DRAWCALL, 0u);
+
+		// Timestamp query happening in the secondary command buffer
+		if (m_supportedQueryType[QUERY_TYPE_TIMESTAMP])
+			vk.cmdWriteTimestamp(*cmdBufferSecondary, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, *m_queryPools[QUERY_TYPE_TIMESTAMP], QUERY_INDEX_CAPTURE_DRAWCALL);
+
+		vk.cmdDraw(*cmdBufferSecondary, NUM_VERTICES_IN_DRAWCALL, 1, 0, 0);
+
+		if (m_supportedQueryType[QUERY_TYPE_PIPELINE_STATISTICS])
+			vk.cmdEndQuery(*cmdBufferSecondary, *m_queryPools[QUERY_TYPE_PIPELINE_STATISTICS], QUERY_INDEX_CAPTURE_DRAWCALL);
+
+		if (!inheritedQueries && m_supportedQueryType[QUERY_TYPE_OCCLUSION])
+			vk.cmdEndQuery(*cmdBufferSecondary, *m_queryPools[QUERY_TYPE_OCCLUSION], QUERY_INDEX_CAPTURE_DRAWCALL);
+
+		endCommandBuffer(vk, *cmdBufferSecondary);
+	}
+
+	// Primary command buffer recording
+	{
+		beginCommandBuffer(vk, *cmdBufferPrimary);
+
+		initialTransitionColor2DImage(vk, *cmdBufferPrimary, m_stateObjects->m_colorAttachmentImage->object(), vk::VK_IMAGE_LAYOUT_GENERAL,
+									  vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT);
+		initialTransitionDepth2DImage(vk, *cmdBufferPrimary, m_stateObjects->m_DepthImage->object(), vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+									  vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT);
+
+		std::vector<vk::VkClearValue> renderPassClearValues(2);
+		deMemset(&renderPassClearValues[0], 0, static_cast<int>(renderPassClearValues.size()) * sizeof(vk::VkClearValue));
+
+		for (deUint32 poolNdx = 0u; poolNdx < NUM_QUERY_POOLS; poolNdx++)
+		{
+			if (m_supportedQueryType[poolNdx])
+				vk.cmdResetQueryPool(*cmdBufferPrimary, *m_queryPools[poolNdx], 0u, NUM_QUERIES_IN_POOL);
+		}
+
+		for (deUint32 poolNdx = 0u; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+		{
+			if (m_supportedQueryType[poolNdx])
+				vk.cmdBeginQuery(*cmdBufferPrimary, *m_queryPools[poolNdx], QUERY_INDEX_CAPTURE_EMPTY, 0u);
+		}
+
+		for (deUint32 poolNdx = 0u; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+		{
+			if (m_supportedQueryType[poolNdx])
+				vk.cmdEndQuery(*cmdBufferPrimary, *m_queryPools[poolNdx], QUERY_INDEX_CAPTURE_EMPTY);
+		}
+
+		// Run oclussion queries capture in the primary command buffer, inherit the counters for the secondary command buffer
+		if (inheritedQueries && m_supportedQueryType[QUERY_TYPE_OCCLUSION])
+			vk.cmdBeginQuery(*cmdBufferPrimary, *m_queryPools[QUERY_TYPE_OCCLUSION], QUERY_INDEX_CAPTURE_DRAWCALL, 0u);
+
+		beginRenderPass(vk, *cmdBufferPrimary, *m_stateObjects->m_renderPass, *m_stateObjects->m_framebuffer, vk::makeRect2D(0, 0, StateObjects::WIDTH, StateObjects::HEIGHT), (deUint32)renderPassClearValues.size(), &renderPassClearValues[0], vk::VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS);
+
+		vk.cmdExecuteCommands(*cmdBufferPrimary, 1u, &cmdBufferSecondary.get());
+
+		endRenderPass(vk, *cmdBufferPrimary);
+
+		if (inheritedQueries && m_supportedQueryType[QUERY_TYPE_OCCLUSION])
+			vk.cmdEndQuery(*cmdBufferPrimary, *m_queryPools[QUERY_TYPE_OCCLUSION], QUERY_INDEX_CAPTURE_DRAWCALL);
+
+		transition2DImage(vk, *cmdBufferPrimary,
+						  m_stateObjects->m_colorAttachmentImage->object(),
+						  vk::VK_IMAGE_ASPECT_COLOR_BIT,
+						  vk::VK_IMAGE_LAYOUT_GENERAL,
+						  vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+						  vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+						  vk::VK_ACCESS_TRANSFER_READ_BIT,
+						  vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+						  vk::VK_PIPELINE_STAGE_TRANSFER_BIT);
+
+		endCommandBuffer(vk, *cmdBufferPrimary);
+	}
+
+	submitCommandsAndWait(vk, device, queue, cmdBufferPrimary.get());
+
+	deUint64 queryResults[NUM_QUERIES_IN_POOL] = { 0 };
+	size_t queryResultsSize		= sizeof(queryResults);
+	bool passed = true;
+
+	// Occlusion and pipeline statistics queries verification
+	for (deUint32 poolNdx = 0; poolNdx < QUERY_TYPE_TIMESTAMP; poolNdx++)
+	{
+		if (!m_supportedQueryType[poolNdx])
+			continue;
+		vk::VkResult queryResult	= vk.getQueryPoolResults(device, *m_queryPools[poolNdx], 0, NUM_QUERIES_IN_POOL, queryResultsSize, queryResults, sizeof(queryResults[0]), vk::VK_QUERY_RESULT_64_BIT);
+
+		if (queryResult == vk::VK_NOT_READY)
+		{
+			TCU_FAIL("Query result not available, but vkWaitIdle() was called.");
+		}
+
+		VK_CHECK(queryResult);
+		std::string name = (poolNdx == QUERY_TYPE_OCCLUSION) ? "OcclusionQueryResults" : "PipelineStatisticsQueryResults";
+		std::string desc = (poolNdx == QUERY_TYPE_OCCLUSION) ? "Occlusion query results" : "PipelineStatistics query results";
+		log << tcu::TestLog::Section(name, desc);
+		for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(queryResults); ++ndx)
+		{
+			log << tcu::TestLog::Message << "query[slot == " << ndx
+				<< "] result == " << queryResults[ndx] << tcu::TestLog::EndMessage;
+		}
+
+		for (deUint32 queryNdx = 0; queryNdx < DE_LENGTH_OF_ARRAY(queryResults); ++queryNdx)
+		{
+			if (queryNdx == QUERY_INDEX_CAPTURE_EMPTY && queryResults[queryNdx] != 0u)
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"wrong value of query for index "
+					<< queryNdx << ", expected any zero value, got "
+					<< queryResults[0] << "." << tcu::TestLog::EndMessage;
+				passed = false;
+			}
+
+			if (queryNdx != QUERY_INDEX_CAPTURE_EMPTY && queryResults[queryNdx] == 0)
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"wrong value of query for index "
+					<< queryNdx << ", expected any non-zero value, got "
+					<< queryResults[0] << "." << tcu::TestLog::EndMessage;
+				passed = false;
+			}
+		}
+		log << tcu::TestLog::EndSection;
+	}
+
+	// Timestamp query verification
+	if (m_supportedQueryType[QUERY_TYPE_TIMESTAMP])
+	{
+		std::pair<deUint64, deUint64>	queryResultsWithAvailabilityBit[NUM_QUERIES_IN_POOL];
+		size_t queryResultsWithAvailabilityBitSize		= sizeof(queryResultsWithAvailabilityBit);
+		vk::VkResult queryResult	= vk.getQueryPoolResults(device, *m_queryPools[QUERY_TYPE_TIMESTAMP], 0, NUM_QUERIES_IN_POOL, queryResultsWithAvailabilityBitSize, &queryResultsWithAvailabilityBit[0], sizeof(queryResultsWithAvailabilityBit[0]), vk::VK_QUERY_RESULT_64_BIT | vk::VK_QUERY_RESULT_WITH_AVAILABILITY_BIT);
+
+		if (queryResult != vk::VK_NOT_READY)
+		{
+			TCU_FAIL("We don't have available one query, it should return VK_NOT_READY");
+		}
+
+		log << tcu::TestLog::Section("TimestampQueryResults",
+									 "Timestamp query results");
+		for (int ndx = 0; ndx < NUM_QUERIES_IN_POOL; ++ndx)
+		{
+			log << tcu::TestLog::Message << "query[slot == " << ndx
+				<< "] result == " << queryResultsWithAvailabilityBit[ndx].first << tcu::TestLog::EndMessage;
+		}
+
+
+		for (deUint32 queryNdx = 0; queryNdx < NUM_QUERIES_IN_POOL; ++queryNdx)
+		{
+			if (queryNdx == QUERY_INDEX_CAPTURE_EMPTY && (queryResultsWithAvailabilityBit[queryNdx].first != 0u || queryResultsWithAvailabilityBit[queryNdx].second != 0u))
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"either wrong value of query for index "
+					<< queryNdx << " (expected any zero value, got "
+					<< queryResultsWithAvailabilityBit[queryNdx].first << ") or the result is available (" << queryResultsWithAvailabilityBit[queryNdx].second << ")"
+					<< tcu::TestLog::EndMessage;
+				passed = false;
+			}
+
+			if (queryNdx != QUERY_INDEX_CAPTURE_EMPTY && (queryResultsWithAvailabilityBit[queryNdx].first == 0u || queryResultsWithAvailabilityBit[queryNdx].second == 0u))
+			{
+				log << tcu::TestLog::Message << "vkGetQueryPoolResults returned "
+					"either wrong value of query for index "
+					<< queryNdx << " (expected any non-zero value, got "
+					<< queryResults[0] << ") or result is unavailable." << tcu::TestLog::EndMessage;
+				passed = false;
+			}
+		}
+		log << tcu::TestLog::EndSection;
+	}
+
+	if (passed)
+	{
+		return tcu::TestStatus(QP_TEST_RESULT_PASS, "Query result verification passed");
+	}
+	return tcu::TestStatus(QP_TEST_RESULT_FAIL, "Query result verification failed");
+}
+
+template<class Instance>
+class QueryPoolConcurrentTest : public vkt::TestCase
+{
+public:
+	QueryPoolConcurrentTest (tcu::TestContext &context, const char *name, const char *description)
+		: TestCase			(context, name, description)
+	{
+	}
+private:
+	vkt::TestInstance* createInstance (vkt::Context& context) const
+	{
+		return new Instance(context);
+	}
+
+	void initPrograms(vk::SourceCollections& programCollection) const
+	{
+		const std::string fragSrc = std::string(
+			"#version 400\n"
+			"layout(location = 0) out vec4 out_FragColor;\n"
+			"void main()\n"
+			"{\n"
+			"	out_FragColor = vec4(0.07, 0.48, 0.75, 1.0);\n"
+			"	if ((int(gl_FragCoord.x) % 2) == (int(gl_FragCoord.y) % 2))\n"
+			"		discard;\n"
+			"}");
+
+		programCollection.glslSources.add("frag") << glu::FragmentSource(fragSrc.c_str());
+
+		programCollection.glslSources.add("vert") << glu::VertexSource("#version 430\n"
+																		 "layout(location = 0) in vec4 in_Position;\n"
+																		 "out gl_PerVertex { vec4 gl_Position; float gl_PointSize; };\n"
+																		 "void main() {\n"
+																		 "	gl_Position  = in_Position;\n"
+																		 "	gl_PointSize = 1.0;\n"
+																		 "}\n");
+	}
+};
+
+} //anonymous
+
+QueryPoolConcurrentTests::QueryPoolConcurrentTests (tcu::TestContext &testCtx)
+	: TestCaseGroup(testCtx, "concurrent_queries", "Tests for concurrent queries")
+{
+	/* Left blank on purpose */
+}
+
+QueryPoolConcurrentTests::~QueryPoolConcurrentTests (void)
+{
+	/* Left blank on purpose */
+}
+
+void QueryPoolConcurrentTests::init (void)
+{
+	addChild(new QueryPoolConcurrentTest<PrimaryCommandBufferConcurrentTestInstance>(m_testCtx, "primary_command_buffer", ""));
+	addChild(new QueryPoolConcurrentTest<SecondaryCommandBufferConcurrentTestInstance>(m_testCtx, "secondary_command_buffer", ""));
+}
+
+} //QueryPool
+} //vkt
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp
new file mode 100644
index 0000000..6c49c12
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp
@@ -0,0 +1,50 @@
+#ifndef _VKTQUERYPOOLCONCURRENTTESTS_HPP
+#define _VKTQUERYPOOLCONCURRENTTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Valve Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Concurrent Query Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace QueryPool
+{
+
+class QueryPoolConcurrentTests : public tcu::TestCaseGroup
+{
+public:
+	QueryPoolConcurrentTests	(tcu::TestContext &testCtx);
+	~QueryPoolConcurrentTests	(void);
+	void init					(void);
+
+private:
+	QueryPoolConcurrentTests				(const QueryPoolConcurrentTests &other);
+	// TODO: Do I need this operator?
+	QueryPoolConcurrentTests&	operator=	(const QueryPoolConcurrentTests &other);
+};
+
+} // QueryPool
+} // vkt
+
+#endif // _VKTQUERYPOOLCONCURRENTTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp
index 08bb2d2..da4cd0e 100644
--- a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp
@@ -125,8 +125,10 @@
 	}
 }
 
+using Pair32						= pair<deUint32, deUint32>;
+using Pair64						= pair<deUint64, deUint64>;
 using ResultsVector					= vector<deUint64>;
-using ResultsVectorWithAvailability	= vector<pair<deUint64, deUint64>>;
+using ResultsVectorWithAvailability	= vector<Pair64>;
 
 // Get query pool results as a vector. Note results are always converted to
 // deUint64, but the actual vkGetQueryPoolResults call will use the 64-bits flag
@@ -150,9 +152,15 @@
 	{
 		using IntermediateVector = vector<deUint32>;
 
-		IntermediateVector	intermediate(queryCount, 0u);
+		IntermediateVector	intermediate(queryCount);
+
+		// Try to preserve existing data if possible.
+		std::transform(begin(output), end(output), begin(intermediate), [](deUint64 v) { return static_cast<deUint32>(v); });
+
 		constexpr size_t	stride		= sizeof(decltype(intermediate)::value_type);
 		const size_t		totalSize	= stride * intermediate.size();
+
+		// Get and copy results.
 		result = vk.getQueryPoolResults(device, queryPool, firstQuery, queryCount, totalSize, intermediate.data(), stride, flags);
 		std::copy(begin(intermediate), end(intermediate), begin(output));
 	}
@@ -178,19 +186,40 @@
 	}
 	else
 	{
-		using IntermediateVector = vector<pair<deUint32, deUint32>>;
+		using IntermediateVector = vector<Pair32>;
 
-		IntermediateVector	intermediate(queryCount, pair<deUint32, deUint32>(0u, 0u));
+		IntermediateVector	intermediate(queryCount);
+
+		// Try to preserve existing output data if possible.
+		std::transform(begin(output), end(output), begin(intermediate), [](const Pair64& p) { return Pair32{static_cast<deUint32>(p.first), static_cast<deUint32>(p.second)}; });
+
 		constexpr size_t	stride		= sizeof(decltype(intermediate)::value_type);
 		const size_t		totalSize	= stride * intermediate.size();
+
+		// Get and copy.
 		result = vk.getQueryPoolResults(device, queryPool, firstQuery, queryCount, totalSize, intermediate.data(), stride, flags);
-		std::transform(begin(intermediate), end(intermediate), begin(output),
-			[](const pair<deUint32, deUint32>& p) { return pair<deUint64, deUint64>(p.first, p.second); });
+		std::transform(begin(intermediate), end(intermediate), begin(output), [](const Pair32& p) { return Pair64{p.first, p.second}; });
 	}
 
 	return result;
 }
 
+// Generic parameters structure.
+struct GenericParameters
+{
+	ResetType	resetType;
+	deBool		query64Bits;
+
+	GenericParameters (ResetType resetType_, deBool query64Bits_)
+		: resetType{resetType_}, query64Bits{query64Bits_}
+		{}
+
+	VkQueryResultFlags querySizeFlags () const
+	{
+		return (query64Bits ? static_cast<VkQueryResultFlags>(vk::VK_QUERY_RESULT_64_BIT) : 0u);
+	}
+};
+
 void beginSecondaryCommandBuffer (const DeviceInterface&				vk,
 								  const VkCommandBuffer					commandBuffer,
 								  const VkQueryPipelineStatisticFlags	queryFlags,
@@ -351,21 +380,18 @@
 class ComputeInvocationsTestInstance : public StatisticQueryTestInstance
 {
 public:
-	struct ParametersCompute
+	struct ParametersCompute : public GenericParameters
 	{
-		ParametersCompute(const tcu::UVec3& localSize_, const tcu::UVec3& groupSize_, const std::string& shaderName_, ResetType resetType_, deBool query64Bits_)
-			: localSize(localSize_)
+		ParametersCompute (const tcu::UVec3& localSize_, const tcu::UVec3& groupSize_, const std::string& shaderName_, ResetType resetType_, deBool query64Bits_)
+			: GenericParameters{resetType_, query64Bits_}
+			, localSize(localSize_)
 			, groupSize(groupSize_)
 			, shaderName(shaderName_)
-			, resetType(resetType_)
-			, query64Bits(query64Bits_)
 			{}
 
 		tcu::UVec3	localSize;
 		tcu::UVec3	groupSize;
 		std::string	shaderName;
-		ResetType	resetType;
-		deBool		query64Bits;
 	};
 							ComputeInvocationsTestInstance		(Context& context, const std::vector<ParametersCompute>& parameters);
 	tcu::TestStatus			iterate								(void);
@@ -531,21 +557,21 @@
 		if (m_parameters[0].resetType == RESET_TYPE_NORMAL)
 		{
 			ResultsVector data;
-			VK_CHECK(GetQueryPoolResultsVector(data, vk, device, *queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT)));
+			VK_CHECK(GetQueryPoolResultsVector(data, vk, device, *queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | m_parameters[0].querySizeFlags())));
 			if (getComputeExecution(m_parameters[parametersNdx]) != data[0])
 				return tcu::TestStatus::fail("QueryPoolResults incorrect");
 		}
 		else if (m_parameters[0].resetType == RESET_TYPE_HOST)
 		{
 			ResultsVectorWithAvailability data;
-			VK_CHECK(GetQueryPoolResultsVector(data, vk, device, *queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
+			VK_CHECK(GetQueryPoolResultsVector(data, vk, device, *queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | m_parameters[0].querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
 			if (getComputeExecution(m_parameters[parametersNdx]) != data[0].first || data[0].second == 0)
 				return tcu::TestStatus::fail("QueryPoolResults incorrect");
 
 			deUint64 temp = data[0].first;
 
 			vk.resetQueryPool(device, *queryPool, 0, 1u);
-			vk::VkResult res = GetQueryPoolResultsVector(data, vk, device, *queryPool, 0u, 1u, (VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
+			vk::VkResult res = GetQueryPoolResultsVector(data, vk, device, *queryPool, 0u, 1u, (m_parameters[0].querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
 			/* From Vulkan spec:
 			 *
 			 * If VK_QUERY_RESULT_WAIT_BIT and VK_QUERY_RESULT_PARTIAL_BIT are both not set then no result values are written to pData
@@ -717,21 +743,21 @@
 		if (m_parameters[0].resetType == RESET_TYPE_NORMAL)
 		{
 			ResultsVector results;
-			VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT)));
+			VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | m_parameters[0].querySizeFlags())));
 			if (expected != results[0])
 				return tcu::TestStatus::fail("QueryPoolResults incorrect");
 		}
 		else if (m_parameters[0].resetType == RESET_TYPE_HOST)
 		{
 			ResultsVectorWithAvailability results;
-			VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
+			VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, 1u, (VK_QUERY_RESULT_WAIT_BIT | m_parameters[0].querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
 			if (expected != results[0].first || results[0].second == 0u)
 				return tcu::TestStatus::fail("QueryPoolResults incorrect");
 
 			deUint64 temp = results[0].first;
 
 			vk.resetQueryPool(device, queryPool, 0u, 1u);
-			vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, 1u, (VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
+			vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, 1u, (m_parameters[0].querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
 			/* From Vulkan spec:
 			 *
 			 * If VK_QUERY_RESULT_WAIT_BIT and VK_QUERY_RESULT_PARTIAL_BIT are both not set then no result values are written to pData
@@ -925,19 +951,18 @@
 		tcu::Vec4	position;
 		tcu::Vec4	color;
 	};
-	struct  ParametersGraphic
+
+	struct ParametersGraphic : public GenericParameters
 	{
-			ParametersGraphic (const VkQueryPipelineStatisticFlags queryStatisticFlags_, const VkPrimitiveTopology primitiveTopology_, const ResetType resetType_, const deBool query64Bits_, const deBool vertexOnlyPipe_ = DE_FALSE)
-			: queryStatisticFlags	(queryStatisticFlags_)
+		ParametersGraphic (const VkQueryPipelineStatisticFlags queryStatisticFlags_, const VkPrimitiveTopology primitiveTopology_, const ResetType resetType_, const deBool query64Bits_, const deBool vertexOnlyPipe_ = DE_FALSE)
+			: GenericParameters		{resetType_, query64Bits_}
+			, queryStatisticFlags	(queryStatisticFlags_)
 			, primitiveTopology		(primitiveTopology_)
-			, resetType				(resetType_)
-			, query64Bits			(query64Bits_)
 			, vertexOnlyPipe		(vertexOnlyPipe_)
-		{}
+			{}
+
 		VkQueryPipelineStatisticFlags	queryStatisticFlags;
 		VkPrimitiveTopology				primitiveTopology;
-		ResetType						resetType;
-		deBool							query64Bits;
 		deBool							vertexOnlyPipe;
 	};
 											GraphicBasicTestInstance			(vkt::Context&					context,
@@ -1350,7 +1375,7 @@
 	if (m_parametersGraphic.resetType == RESET_TYPE_NORMAL)
 	{
 		ResultsVector results(queryCount, 0u);
-		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT)));
+		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | m_parametersGraphic.querySizeFlags())));
 		if (results[0] < expectedMin)
 			return tcu::TestStatus::fail("QueryPoolResults incorrect");
 		if (queryCount > 1)
@@ -1363,7 +1388,7 @@
 	else if (m_parametersGraphic.resetType == RESET_TYPE_HOST)
 	{
 		ResultsVectorWithAvailability results(queryCount, pair<deUint64, deUint64>(0u,0u));
-		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
+		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | m_parametersGraphic.querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
 		if (results[0].first < expectedMin || results[0].second == 0)
 			return tcu::TestStatus::fail("QueryPoolResults incorrect");
 
@@ -1377,7 +1402,7 @@
 		deUint64 temp = results[0].first;
 
 		vk.resetQueryPool(device, queryPool, 0, queryCount);
-		vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
+		vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (m_parametersGraphic.querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
 		/* From Vulkan spec:
 		 *
 		 * If VK_QUERY_RESULT_WAIT_BIT and VK_QUERY_RESULT_PARTIAL_BIT are both not set then no result values are written to pData
@@ -1816,7 +1841,7 @@
 	if (m_parametersGraphic.resetType == RESET_TYPE_NORMAL)
 	{
 		ResultsVector results(queryCount, 0u);
-		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT)));
+		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | m_parametersGraphic.querySizeFlags())));
 		if (results[0] < expectedMin)
 			return tcu::TestStatus::fail("QueryPoolResults incorrect");
 		if (queryCount > 1)
@@ -1829,7 +1854,7 @@
 	else if (m_parametersGraphic.resetType == RESET_TYPE_HOST)
 	{
 		ResultsVectorWithAvailability results(queryCount, pair<deUint64, deUint64>(0u, 0u));
-		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
+		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | m_parametersGraphic.querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
 		if (results[0].first < expectedMin || results[0].second == 0u)
 			return tcu::TestStatus::fail("QueryPoolResults incorrect");
 
@@ -1843,7 +1868,7 @@
 		deUint64 temp = results[0].first;
 
 		vk.resetQueryPool(device, queryPool, 0, queryCount);
-		vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
+		vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (m_parametersGraphic.querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
 		/* From Vulkan spec:
 		 *
 		 * If VK_QUERY_RESULT_WAIT_BIT and VK_QUERY_RESULT_PARTIAL_BIT are both not set then no result values are written to pData
@@ -2244,7 +2269,7 @@
 	if (m_parametersGraphic.resetType == RESET_TYPE_NORMAL)
 	{
 		ResultsVector results(queryCount, 0u);
-		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT)));
+		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | m_parametersGraphic.querySizeFlags())));
 		if (results[0] < expectedMin)
 			return tcu::TestStatus::fail("QueryPoolResults incorrect");
 		if (queryCount > 1)
@@ -2260,7 +2285,7 @@
 	else if (m_parametersGraphic.resetType == RESET_TYPE_HOST)
 	{
 		ResultsVectorWithAvailability results(queryCount, pair<deUint64,deUint64>(0u,0u));
-		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
+		VK_CHECK(GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_WAIT_BIT | m_parametersGraphic.querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)));
 		if (results[0].first < expectedMin || results[0].second == 0u)
 			return tcu::TestStatus::fail("QueryPoolResults incorrect");
 
@@ -2274,7 +2299,7 @@
 		deUint64 temp = results[0].first;
 
 		vk.resetQueryPool(device, queryPool, 0, queryCount);
-		vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
+		vk::VkResult res = GetQueryPoolResultsVector(results, vk, device, queryPool, 0u, queryCount, (m_parametersGraphic.querySizeFlags() | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT));
 		/* From Vulkan spec:
 		 *
 		 * If VK_QUERY_RESULT_WAIT_BIT and VK_QUERY_RESULT_PARTIAL_BIT are both not set then no result values are written to pData
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp
index 4ba8cd2..b28475e 100644
--- a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolTests.cpp
@@ -28,6 +28,7 @@
 #include "vktQueryPoolOcclusionTests.hpp"
 #include "vktQueryPoolStatisticsTests.hpp"
 #include "vktQueryPoolPerformanceTests.hpp"
+#include "vktQueryPoolConcurrentTests.hpp"
 
 namespace vkt
 {
@@ -44,6 +45,7 @@
 	queryPoolTests->addChild(new QueryPoolOcclusionTests(testCtx));
 	queryPoolTests->addChild(new QueryPoolStatisticsTests(testCtx));
 	queryPoolTests->addChild(new QueryPoolPerformanceTests(testCtx));
+	queryPoolTests->addChild(new QueryPoolConcurrentTests(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
index 4f7901f..e199808 100644
--- a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
+++ b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
@@ -118,6 +118,15 @@
 static const deUint32 lineStippleFactor = 2;
 static const deUint32 lineStipplePattern = 0x0F0F;
 
+enum PrimitiveStrictness
+{
+	PRIMITIVESTRICTNESS_STRICT = 0,
+	PRIMITIVESTRICTNESS_NONSTRICT,
+	PRIMITIVESTRICTNESS_IGNORE,
+
+	PRIMITIVESTRICTNESS_LAST
+};
+
 class BaseRenderingTestCase : public TestCase
 {
 public:
@@ -174,7 +183,7 @@
 	const VkPipelineRasterizationStateCreateInfo*	getRasterizationStateCreateInfo	(void) const;
 
 	virtual
-	VkPipelineRasterizationLineStateCreateInfoEXT	getLineRasterizationStateCreateInfo	(void) const;
+	VkPipelineRasterizationLineStateCreateInfoEXT*	getLineRasterizationStateCreateInfo	(void);
 
 	virtual
 	const VkPipelineColorBlendStateCreateInfo*		getColorBlendStateCreateInfo	(void) const;
@@ -220,6 +229,8 @@
 
 	const deUint32									m_additionalRenderSize;
 	const VkDeviceSize								m_additionalResultBufferSize;
+
+	VkPipelineRasterizationLineStateCreateInfoEXT	m_lineRasterizationStateInfo;
 };
 
 BaseRenderingTestInstance::BaseRenderingTestInstance (Context& context, VkSampleCountFlagBits sampleCount, deUint32 renderSize, VkFormat imageFormat, deUint32 additionalRenderSize)
@@ -242,6 +253,8 @@
 	DescriptorPoolBuilder						descriptorPoolBuilder;
 	DescriptorSetLayoutBuilder					descriptorSetLayoutBuilder;
 
+	deMemset(&m_lineRasterizationStateInfo, 0, sizeof(m_lineRasterizationStateInfo));
+
 	// Command Pool
 	m_commandPool = createCommandPool(vkd, vkDevice, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex);
 
@@ -711,9 +724,7 @@
 
 		VkPipelineRasterizationStateCreateInfo rasterizationStateInfo = *getRasterizationStateCreateInfo();
 
-		VkPipelineRasterizationLineStateCreateInfoEXT lineRasterizationStateInfo = getLineRasterizationStateCreateInfo();
-
-		rasterizationStateInfo.pNext = &lineRasterizationStateInfo;
+		rasterizationStateInfo.pNext = getLineRasterizationStateCreateInfo();
 
 		VkPipelineDynamicStateCreateInfo			dynamicStateCreateInfo =
 		{
@@ -867,9 +878,9 @@
 	return &rasterizationStateCreateInfo;
 }
 
-VkPipelineRasterizationLineStateCreateInfoEXT BaseRenderingTestInstance::getLineRasterizationStateCreateInfo (void) const
+VkPipelineRasterizationLineStateCreateInfoEXT* BaseRenderingTestInstance::getLineRasterizationStateCreateInfo (void)
 {
-	VkPipelineRasterizationLineStateCreateInfoEXT lineRasterizationStateInfo	=
+	m_lineRasterizationStateInfo =
 	{
 		VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,	// VkStructureType				sType;
 		DE_NULL,																// const void*					pNext;
@@ -879,7 +890,7 @@
 		0xFFFF,																	// uint16_t						lineStipplePattern;
 	};
 
-	return lineRasterizationStateInfo;
+	return &m_lineRasterizationStateInfo;
 }
 
 const VkPipelineColorBlendStateCreateInfo* BaseRenderingTestInstance::getColorBlendStateCreateInfo (void) const
@@ -993,83 +1004,90 @@
 class BaseLineTestInstance : public BaseRenderingTestInstance
 {
 public:
-							BaseLineTestInstance	(Context& context,
-													 VkPrimitiveTopology primitiveTopology,
-													 PrimitiveWideness wideness,
-													 VkSampleCountFlagBits sampleCount,
-													 LineStipple stipple,
-													 VkLineRasterizationModeEXT	lineRasterizationMode,
-													 const deUint32 additionalRenderSize = 0);
-	virtual tcu::TestStatus	iterate					(void);
-	virtual float			getLineWidth			(void) const;
-	bool					getLineStippleEnable	(void) const { return m_stipple != LINESTIPPLE_DISABLED; }
-	virtual bool			getLineStippleDynamic	(void) const { return m_stipple == LINESTIPPLE_DYNAMIC; };
+								BaseLineTestInstance	(Context&					context,
+														 VkPrimitiveTopology		primitiveTopology,
+														 PrimitiveWideness			wideness,
+														 PrimitiveStrictness		strictness,
+														 VkSampleCountFlagBits		sampleCount,
+														 LineStipple				stipple,
+														 VkLineRasterizationModeEXT	lineRasterizationMode,
+														 const deUint32				additionalRenderSize = 0);
+	virtual tcu::TestStatus		iterate					(void);
+	virtual float				getLineWidth			(void) const;
+	bool						getLineStippleEnable	(void) const { return m_stipple != LINESTIPPLE_DISABLED; }
+	virtual bool				getLineStippleDynamic	(void) const { return m_stipple == LINESTIPPLE_DYNAMIC; };
 
 	virtual
-	VkPipelineRasterizationLineStateCreateInfoEXT	getLineRasterizationStateCreateInfo	(void) const;
+	VkPipelineRasterizationLineStateCreateInfoEXT*		getLineRasterizationStateCreateInfo	(void);
 
 private:
-	virtual void			generateLines			(int iteration, std::vector<tcu::Vec4>& outData, std::vector<LineSceneSpec::SceneLine>& outLines) = DE_NULL;
+	virtual void				generateLines			(int iteration, std::vector<tcu::Vec4>& outData, std::vector<LineSceneSpec::SceneLine>& outLines) = DE_NULL;
 
-	bool					resultHasAlpha			(tcu::Surface& result);
+	bool						resultHasAlpha			(tcu::Surface& result);
 
-	int						m_iteration;
-	const int				m_iterationCount;
-	VkPrimitiveTopology		m_primitiveTopology;
-	const PrimitiveWideness	m_primitiveWideness;
-	bool					m_allIterationsPassed;
-	bool					m_qualityWarning;
-	float					m_maxLineWidth;
-	std::vector<float>		m_lineWidths;
-	LineStipple				m_stipple;
+	int							m_iteration;
+	const int					m_iterationCount;
+	VkPrimitiveTopology			m_primitiveTopology;
+	const PrimitiveWideness		m_primitiveWideness;
+	const PrimitiveStrictness	m_primitiveStrictness;
+	bool						m_allIterationsPassed;
+	bool						m_qualityWarning;
+	float						m_maxLineWidth;
+	std::vector<float>			m_lineWidths;
+	LineStipple					m_stipple;
 	VkLineRasterizationModeEXT	m_lineRasterizationMode;
-	Move<VkImage>									m_additionalImage;
-	de::MovePtr<Allocation>							m_additionalImageMemory;
-	Move<VkImageView>								m_additionalImageView;
-	Move<VkImage>									m_additionalResolvedImage;
-	de::MovePtr<Allocation>							m_additionalResolvedImageMemory;
-	Move<VkImageView>								m_additionalResolvedImageView;
-	Move<VkFramebuffer>								m_additionalFrameBuffer;
-	Move<VkBuffer>									m_additionalResultBuffer;
-	de::MovePtr<Allocation>							m_additionalResultBufferMemory;
+	Move<VkImage>				m_additionalImage;
+	de::MovePtr<Allocation>		m_additionalImageMemory;
+	Move<VkImageView>			m_additionalImageView;
+	Move<VkImage>				m_additionalResolvedImage;
+	de::MovePtr<Allocation>		m_additionalResolvedImageMemory;
+	Move<VkImageView>			m_additionalResolvedImageView;
+	Move<VkFramebuffer>			m_additionalFrameBuffer;
+	Move<VkBuffer>				m_additionalResultBuffer;
+	de::MovePtr<Allocation>		m_additionalResultBufferMemory;
 };
 
-BaseLineTestInstance::BaseLineTestInstance (Context& context,
-											VkPrimitiveTopology primitiveTopology,
-											PrimitiveWideness wideness,
-											VkSampleCountFlagBits sampleCount,
-											LineStipple stipple,
+BaseLineTestInstance::BaseLineTestInstance (Context&					context,
+											VkPrimitiveTopology			primitiveTopology,
+											PrimitiveWideness			wideness,
+											PrimitiveStrictness			strictness,
+											VkSampleCountFlagBits		sampleCount,
+											LineStipple					stipple,
 											VkLineRasterizationModeEXT	lineRasterizationMode,
 											const deUint32 additionalRenderSize)
-	: BaseRenderingTestInstance			(context, sampleCount, RESOLUTION_POT, VK_FORMAT_R8G8B8A8_UNORM, additionalRenderSize)
-	, m_iteration						(0)
-	, m_iterationCount					(3)
-	, m_primitiveTopology				(primitiveTopology)
-	, m_primitiveWideness				(wideness)
-	, m_allIterationsPassed				(true)
-	, m_qualityWarning					(false)
-	, m_maxLineWidth					(1.0f)
-	, m_stipple							(stipple)
-	, m_lineRasterizationMode			(lineRasterizationMode)
+	: BaseRenderingTestInstance	(context, sampleCount, RESOLUTION_POT, VK_FORMAT_R8G8B8A8_UNORM, additionalRenderSize)
+	, m_iteration				(0)
+	, m_iterationCount			(3)
+	, m_primitiveTopology		(primitiveTopology)
+	, m_primitiveWideness		(wideness)
+	, m_primitiveStrictness		(strictness)
+	, m_allIterationsPassed		(true)
+	, m_qualityWarning			(false)
+	, m_maxLineWidth			(1.0f)
+	, m_stipple					(stipple)
+	, m_lineRasterizationMode	(lineRasterizationMode)
 {
 	DE_ASSERT(m_primitiveWideness < PRIMITIVEWIDENESS_LAST);
 
-	if (context.isDeviceFunctionalitySupported("VK_EXT_line_rasterization"))
+	if (m_lineRasterizationMode != VK_LINE_RASTERIZATION_MODE_EXT_LAST)
 	{
-		VkPhysicalDeviceLineRasterizationPropertiesEXT lineRasterizationProperties =
+		if (context.isDeviceFunctionalitySupported("VK_EXT_line_rasterization"))
 		{
-			VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,	// VkStructureType	sType;
-			DE_NULL,																// void*			pNext;
-			0u,																		// deUint32			lineSubPixelPrecisionBits;
-		};
+			VkPhysicalDeviceLineRasterizationPropertiesEXT lineRasterizationProperties =
+			{
+				VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,	// VkStructureType	sType;
+				DE_NULL,																// void*			pNext;
+				0u,																		// deUint32			lineSubPixelPrecisionBits;
+			};
 
-		VkPhysicalDeviceProperties2 deviceProperties2;
-		deviceProperties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
-		deviceProperties2.pNext = &lineRasterizationProperties;
+			VkPhysicalDeviceProperties2 deviceProperties2;
+			deviceProperties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			deviceProperties2.pNext = &lineRasterizationProperties;
 
-		context.getInstanceInterface().getPhysicalDeviceProperties2(m_context.getPhysicalDevice(), &deviceProperties2);
+			context.getInstanceInterface().getPhysicalDeviceProperties2(m_context.getPhysicalDevice(), &deviceProperties2);
 
-		m_subpixelBits = lineRasterizationProperties.lineSubPixelPrecisionBits;
+			m_subpixelBits = lineRasterizationProperties.lineSubPixelPrecisionBits;
+		}
 	}
 
 	// create line widths
@@ -1298,8 +1316,8 @@
 		// compare
 		RasterizationArguments	args;
 		LineSceneSpec			scene;
-
-		tcu::IVec4				colorBits = tcu::getTextureFormatBitDepth(getTextureFormat());
+		tcu::IVec4				colorBits	= tcu::getTextureFormatBitDepth(getTextureFormat());
+		bool					strict		= m_primitiveStrictness == PRIMITIVESTRICTNESS_STRICT;
 
 		args.numSamples		= m_multisampling ? 1 : 0;
 		args.subpixelBits	= m_subpixelBits;
@@ -1347,11 +1365,11 @@
 				}
 			}
 
-			if (!verifyRelaxedLineGroupRasterization(resultImage, scene, args, m_context.getTestContext().getLog(), (0 == m_multisampling)))
+			if (!verifyRelaxedLineGroupRasterization(resultImage, scene, args, m_context.getTestContext().getLog(), (0 == m_multisampling), strict))
 			{
 				// Retry with weaker verification. If it passes, consider it a quality warning.
 				scene.verificationMode = tcu::VERIFICATIONMODE_WEAKER;
-				if (!verifyRelaxedLineGroupRasterization(resultImage, scene, args, m_context.getTestContext().getLog()))
+				if (!verifyRelaxedLineGroupRasterization(resultImage, scene, args, m_context.getTestContext().getLog(), false, strict))
 					m_allIterationsPassed = false;
 				else
 					m_qualityWarning = true;
@@ -1371,14 +1389,21 @@
 				drawPrimitives(additionalResultImage, drawBuffer, colorData, m_primitiveTopology, *m_additionalImage, *m_additionalResolvedImage, *m_additionalFrameBuffer, m_additionalRenderSize, *m_additionalResultBuffer, *m_additionalResultBufferMemory);
 
 				// Compare
-				if (!verifyRelaxedLineGroupRasterization(additionalResultImage, scene, args, m_context.getTestContext().getLog(), (0 == m_multisampling)))
+				if (!verifyRelaxedLineGroupRasterization(additionalResultImage, scene, args, m_context.getTestContext().getLog(), (0 == m_multisampling), strict))
 				{
-					// Retry with weaker verification. If it passes, consider it a quality warning.
-					scene.verificationMode = tcu::VERIFICATIONMODE_WEAKER;
-					if (!verifyRelaxedLineGroupRasterization(resultImage, scene, args, m_context.getTestContext().getLog(), (0 == m_multisampling)))
+					if (strict)
+					{
 						m_allIterationsPassed = false;
+					}
 					else
-						m_qualityWarning = true;
+					{
+						// Retry with weaker verification. If it passes, consider it a quality warning.
+						scene.verificationMode = tcu::VERIFICATIONMODE_WEAKER;
+						if (!verifyRelaxedLineGroupRasterization(resultImage, scene, args, m_context.getTestContext().getLog(), (0 == m_multisampling), strict))
+							m_allIterationsPassed = false;
+						else
+							m_qualityWarning = true;
+					}
 				}
 			}
 		}
@@ -1406,9 +1431,12 @@
 	return m_lineWidths[m_iteration];
 }
 
-VkPipelineRasterizationLineStateCreateInfoEXT BaseLineTestInstance::getLineRasterizationStateCreateInfo (void) const
+VkPipelineRasterizationLineStateCreateInfoEXT* BaseLineTestInstance::getLineRasterizationStateCreateInfo (void)
 {
-	VkPipelineRasterizationLineStateCreateInfoEXT lineRasterizationStateInfo	=
+	if (m_lineRasterizationMode == VK_LINE_RASTERIZATION_MODE_EXT_LAST)
+		return DE_NULL;
+
+	m_lineRasterizationStateInfo	=
 	{
 		VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,	// VkStructureType				sType;
 		DE_NULL,																// const void*					pNext;
@@ -1420,17 +1448,23 @@
 
 	if (m_stipple == LINESTIPPLE_STATIC)
 	{
-		lineRasterizationStateInfo.lineStippleFactor = lineStippleFactor;
-		lineRasterizationStateInfo.lineStipplePattern = lineStipplePattern;
+		m_lineRasterizationStateInfo.lineStippleFactor = lineStippleFactor;
+		m_lineRasterizationStateInfo.lineStipplePattern = lineStipplePattern;
 	}
 
-	return lineRasterizationStateInfo;
+	return &m_lineRasterizationStateInfo;
 }
 
 class PointTestInstance : public BaseRenderingTestInstance
 {
 public:
-							PointTestInstance		(Context& context, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount, /*ignored*/LineStipple stipple, /*ignored*/VkLineRasterizationModeEXT lineRasterizationMode,  deUint32 renderSize);
+							PointTestInstance		(Context&					context,
+													 PrimitiveWideness			wideness,
+													 PrimitiveStrictness		strictness,				// ignored
+													 VkSampleCountFlagBits		sampleCount,
+													 LineStipple				stipple,				// ignored
+													 VkLineRasterizationModeEXT	lineRasterizationMode,	// ignored
+													 deUint32					renderSize);			// ignored
 	virtual tcu::TestStatus	iterate					(void);
 	virtual float			getPointSize			(void) const;
 
@@ -1445,7 +1479,13 @@
 	std::vector<float>		m_pointSizes;
 };
 
-PointTestInstance::PointTestInstance (Context& context, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount, /*ignored*/LineStipple stipple, /*ignored*/VkLineRasterizationModeEXT lineRasterizationMode, deUint32)
+PointTestInstance::PointTestInstance (Context&						context,
+									  PrimitiveWideness				wideness,
+									  PrimitiveStrictness			strictness,
+									  VkSampleCountFlagBits			sampleCount,
+									  LineStipple					stipple,
+									  VkLineRasterizationModeEXT	lineRasterizationMode,
+									  deUint32						renderSize)
 	: BaseRenderingTestInstance	(context, sampleCount)
 	, m_iteration				(0)
 	, m_iterationCount			(3)
@@ -1453,8 +1493,11 @@
 	, m_allIterationsPassed		(true)
 	, m_maxPointSize			(1.0f)
 {
-	(void)stipple;
-	(void)lineRasterizationMode;
+	DE_UNREF(strictness);
+	DE_UNREF(stipple);
+	DE_UNREF(lineRasterizationMode);
+	DE_UNREF(renderSize);
+
 	// create point sizes
 	if (m_primitiveWideness == PRIMITIVEWIDENESS_NARROW)
 	{
@@ -2130,18 +2173,28 @@
 class WidenessTestCase : public BaseRenderingTestCase
 {
 public:
-								WidenessTestCase	(tcu::TestContext& context, const std::string& name, const std::string& description, PrimitiveWideness wideness, bool isLineTest, VkSampleCountFlagBits sampleCount, LineStipple stipple, VkLineRasterizationModeEXT lineRasterizationMode, deUint32 additionalRenderSize = 0)
-									: BaseRenderingTestCase(context, name, description, sampleCount)
-									, m_wideness	(wideness)
-									, m_isLineTest	(isLineTest)
-									, m_stipple(stipple)
-									, m_lineRasterizationMode(lineRasterizationMode)
+								WidenessTestCase	(tcu::TestContext&			context,
+													 const std::string&			name,
+													 const std::string&			description,
+													 PrimitiveWideness			wideness,
+													 PrimitiveStrictness		strictness,
+													 bool						isLineTest,
+													 VkSampleCountFlagBits		sampleCount,
+													 LineStipple				stipple,
+													 VkLineRasterizationModeEXT	lineRasterizationMode,
+													 deUint32					additionalRenderSize	= 0)
+									: BaseRenderingTestCase		(context, name, description, sampleCount)
+									, m_wideness(wideness)
+									, m_strictness				(strictness)
+									, m_isLineTest				(isLineTest)
+									, m_stipple					(stipple)
+									, m_lineRasterizationMode	(lineRasterizationMode)
 									, m_additionalRenderSize	(additionalRenderSize)
 								{}
 
 	virtual TestInstance*		createInstance		(Context& context) const
 								{
-									return new ConcreteTestInstance(context, m_wideness, m_sampleCount, m_stipple, m_lineRasterizationMode, m_additionalRenderSize);
+									return new ConcreteTestInstance(context, m_wideness, m_strictness, m_sampleCount, m_stipple, m_lineRasterizationMode, m_additionalRenderSize);
 								}
 
 	virtual	void				checkSupport		(Context& context) const
@@ -2153,40 +2206,65 @@
 
 										switch (m_lineRasterizationMode)
 										{
-										default:
-											DE_ASSERT(0); // fallthrough
-										case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:
-											if (!context.getDeviceProperties().limits.strictLines)
-												TCU_THROW(NotSupportedError, "Strict rasterization is not supported");
+											default:
+												TCU_THROW(InternalError, "Unknown line rasterization mode");
 
-											if (getLineStippleEnable() &&
-												!context.getLineRasterizationFeaturesEXT().stippledRectangularLines)
-												TCU_THROW(NotSupportedError, "Stippled rectangular lines not supported");
-											break;
-										case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:
-											if (!context.getLineRasterizationFeaturesEXT().rectangularLines)
-												TCU_THROW(NotSupportedError, "Rectangular lines not supported");
+											case VK_LINE_RASTERIZATION_MODE_EXT_LAST:
+											{
+												if (m_strictness == PRIMITIVESTRICTNESS_STRICT)
+													if (!context.getDeviceProperties().limits.strictLines)
+														TCU_THROW(NotSupportedError, "Strict rasterization is not supported");
 
-											if (getLineStippleEnable() &&
-												!context.getLineRasterizationFeaturesEXT().stippledRectangularLines)
-												TCU_THROW(NotSupportedError, "Stippled rectangular lines not supported");
-											break;
-										case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:
-											if (!context.getLineRasterizationFeaturesEXT().bresenhamLines)
-												TCU_THROW(NotSupportedError, "Bresenham lines not supported");
+												if (m_strictness == PRIMITIVESTRICTNESS_NONSTRICT)
+													if (context.getDeviceProperties().limits.strictLines)
+														TCU_THROW(NotSupportedError, "Nonstrict rasterization is not supported");
 
-											if (getLineStippleEnable() &&
-												!context.getLineRasterizationFeaturesEXT().stippledBresenhamLines)
-												TCU_THROW(NotSupportedError, "Stippled Bresenham lines not supported");
-											break;
-										case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT:
-											if (!context.getLineRasterizationFeaturesEXT().smoothLines)
-												TCU_THROW(NotSupportedError, "Smooth lines not supported");
+												break;
+											}
 
-											if (getLineStippleEnable() &&
-												!context.getLineRasterizationFeaturesEXT().stippledSmoothLines)
-												TCU_THROW(NotSupportedError, "Stippled smooth lines not supported");
-											break;
+											case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:
+											{
+												if (!context.getDeviceProperties().limits.strictLines)
+													TCU_THROW(NotSupportedError, "Strict rasterization is not supported");
+
+												if (getLineStippleEnable() &&
+													!context.getLineRasterizationFeaturesEXT().stippledRectangularLines)
+													TCU_THROW(NotSupportedError, "Stippled rectangular lines not supported");
+												break;
+											}
+
+											case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:
+											{
+												if (!context.getLineRasterizationFeaturesEXT().rectangularLines)
+													TCU_THROW(NotSupportedError, "Rectangular lines not supported");
+
+												if (getLineStippleEnable() &&
+													!context.getLineRasterizationFeaturesEXT().stippledRectangularLines)
+													TCU_THROW(NotSupportedError, "Stippled rectangular lines not supported");
+												break;
+											}
+
+											case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:
+											{
+												if (!context.getLineRasterizationFeaturesEXT().bresenhamLines)
+													TCU_THROW(NotSupportedError, "Bresenham lines not supported");
+
+												if (getLineStippleEnable() &&
+													!context.getLineRasterizationFeaturesEXT().stippledBresenhamLines)
+													TCU_THROW(NotSupportedError, "Stippled Bresenham lines not supported");
+												break;
+											}
+
+											case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT:
+											{
+												if (!context.getLineRasterizationFeaturesEXT().smoothLines)
+													TCU_THROW(NotSupportedError, "Smooth lines not supported");
+
+												if (getLineStippleEnable() &&
+													!context.getLineRasterizationFeaturesEXT().stippledSmoothLines)
+													TCU_THROW(NotSupportedError, "Stippled smooth lines not supported");
+												break;
+											}
 										}
 									}
 									else
@@ -2200,18 +2278,19 @@
 	virtual bool			getLineStippleDynamic	(void) const { return m_stipple == LINESTIPPLE_DYNAMIC; };
 
 protected:
-	const PrimitiveWideness		m_wideness;
-	const bool					m_isLineTest;
+	const PrimitiveWideness				m_wideness;
+	const PrimitiveStrictness			m_strictness;
+	const bool							m_isLineTest;
 	const LineStipple					m_stipple;
 	const VkLineRasterizationModeEXT	m_lineRasterizationMode;
-	const deUint32				m_additionalRenderSize;
+	const deUint32						m_additionalRenderSize;
 };
 
 class LinesTestInstance : public BaseLineTestInstance
 {
 public:
-								LinesTestInstance	(Context& context, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount, LineStipple stipple, VkLineRasterizationModeEXT lineRasterizationMode,  deUint32 additionalRenderSize = 0)
-									: BaseLineTestInstance(context, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, wideness, sampleCount, stipple, lineRasterizationMode, additionalRenderSize)
+								LinesTestInstance	(Context& context, PrimitiveWideness wideness, PrimitiveStrictness strictness, VkSampleCountFlagBits sampleCount, LineStipple stipple, VkLineRasterizationModeEXT lineRasterizationMode, deUint32 additionalRenderSize = 0)
+									: BaseLineTestInstance(context, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, wideness, strictness, sampleCount, stipple, lineRasterizationMode, additionalRenderSize)
 								{}
 
 	virtual void				generateLines		(int iteration, std::vector<tcu::Vec4>& outData, std::vector<LineSceneSpec::SceneLine>& outLines);
@@ -2284,8 +2363,8 @@
 class LineStripTestInstance : public BaseLineTestInstance
 {
 public:
-					LineStripTestInstance	(Context& context, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount, LineStipple stipple, VkLineRasterizationModeEXT lineRasterizationMode, deUint32)
-						: BaseLineTestInstance(context, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, wideness, sampleCount, stipple, lineRasterizationMode)
+					LineStripTestInstance	(Context& context, PrimitiveWideness wideness, PrimitiveStrictness strictness, VkSampleCountFlagBits sampleCount, LineStipple stipple, VkLineRasterizationModeEXT lineRasterizationMode, deUint32)
+						: BaseLineTestInstance(context, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, wideness, strictness, sampleCount, stipple, lineRasterizationMode)
 					{}
 
 	virtual void	generateLines			(int iteration, std::vector<tcu::Vec4>& outData, std::vector<LineSceneSpec::SceneLine>& outLines);
@@ -3657,7 +3736,7 @@
 class LineInterpolationTestInstance : public BaseRenderingTestInstance
 {
 public:
-							LineInterpolationTestInstance	(Context& context, VkPrimitiveTopology primitiveTopology, int flags, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount);
+							LineInterpolationTestInstance	(Context& context, VkPrimitiveTopology primitiveTopology, int flags, PrimitiveWideness wideness, PrimitiveStrictness strictness, VkSampleCountFlagBits sampleCount);
 
 	virtual tcu::TestStatus	iterate							(void);
 
@@ -3676,9 +3755,10 @@
 	float					m_maxLineWidth;
 	std::vector<float>		m_lineWidths;
 	bool					m_flatshade;
+	PrimitiveStrictness		m_strictness;
 };
 
-LineInterpolationTestInstance::LineInterpolationTestInstance (Context& context, VkPrimitiveTopology primitiveTopology, int flags, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount)
+LineInterpolationTestInstance::LineInterpolationTestInstance (Context& context, VkPrimitiveTopology primitiveTopology, int flags, PrimitiveWideness wideness, PrimitiveStrictness strictness, VkSampleCountFlagBits sampleCount)
 	: BaseRenderingTestInstance			(context, sampleCount)
 	, m_primitiveTopology				(primitiveTopology)
 	, m_projective						((flags & INTERPOLATIONFLAGS_PROJECTED) != 0)
@@ -3688,6 +3768,7 @@
 	, m_allIterationsPassed				(true)
 	, m_maxLineWidth					(1.0f)
 	, m_flatshade						((flags & INTERPOLATIONFLAGS_FLATSHADE) != 0)
+	, m_strictness						(strictness)
 {
 	DE_ASSERT(m_primitiveWideness < PRIMITIVEWIDENESS_LAST);
 
@@ -3759,8 +3840,28 @@
 			scene.lines.swap(lines);
 			scene.lineWidth = getLineWidth();
 
-			if (!verifyTriangulatedLineGroupInterpolation(resultImage, scene, args, m_context.getTestContext().getLog()))
-				m_allIterationsPassed = false;
+			switch (m_strictness)
+			{
+				case PRIMITIVESTRICTNESS_STRICT:
+				{
+					if (!verifyTriangulatedLineGroupInterpolation(resultImage, scene, args, m_context.getTestContext().getLog(), true))
+						m_allIterationsPassed = false;
+
+					break;
+				}
+
+				case PRIMITIVESTRICTNESS_NONSTRICT:
+				case PRIMITIVESTRICTNESS_IGNORE:
+				{
+					if (!verifyTriangulatedLineGroupInterpolation(resultImage, scene, args, m_context.getTestContext().getLog(), false))
+						m_allIterationsPassed = false;
+
+					break;
+				}
+
+				default:
+					TCU_THROW(InternalError, "Not implemented");
+			}
 		}
 	}
 	else
@@ -3880,21 +3981,30 @@
 class LineInterpolationTestCase : public BaseRenderingTestCase
 {
 public:
-								LineInterpolationTestCase		(tcu::TestContext& context, const std::string& name, const std::string& description, VkPrimitiveTopology primitiveTopology, int flags, PrimitiveWideness wideness, VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT)
+								LineInterpolationTestCase		(tcu::TestContext&		context,
+																 const std::string&		name,
+																 const std::string&		description,
+																 VkPrimitiveTopology	primitiveTopology,
+																 int					flags,
+																 PrimitiveWideness		wideness,
+																 PrimitiveStrictness	strictness,
+																 VkSampleCountFlagBits	sampleCount = VK_SAMPLE_COUNT_1_BIT)
 									: BaseRenderingTestCase		(context, name, description, sampleCount, (flags & INTERPOLATIONFLAGS_FLATSHADE) != 0)
 									, m_primitiveTopology		(primitiveTopology)
 									, m_flags					(flags)
 									, m_wideness				(wideness)
+									, m_strictness				(strictness)
 								{}
 
 	virtual TestInstance*		createInstance					(Context& context) const
 								{
-									return new LineInterpolationTestInstance(context, m_primitiveTopology, m_flags, m_wideness, m_sampleCount);
+									return new LineInterpolationTestInstance(context, m_primitiveTopology, m_flags, m_wideness, m_strictness, m_sampleCount);
 								}
 
 	virtual	void				checkSupport		(Context& context) const
 								{
-									if (!context.getDeviceProperties().limits.strictLines)
+									if (m_strictness == PRIMITIVESTRICTNESS_STRICT &&
+										!context.getDeviceProperties().limits.strictLines)
 										TCU_THROW(NotSupportedError, "Strict rasterization is not supported");
 
 									if (m_wideness == PRIMITIVEWIDENESS_WIDE)
@@ -3904,6 +4014,7 @@
 	const VkPrimitiveTopology	m_primitiveTopology;
 	const int					m_flags;
 	const PrimitiveWideness		m_wideness;
+	const PrimitiveStrictness	m_strictness;
 };
 
 void createRasterizationTests (tcu::TestCaseGroup* rasterizationTests)
@@ -3927,7 +4038,17 @@
 		nostippleTests->addChild(new BaseTestCase<TrianglesTestInstance>		(testCtx, "triangles",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, verify rasterization result"));
 		nostippleTests->addChild(new BaseTestCase<TriangleStripTestInstance>	(testCtx, "triangle_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, verify rasterization result"));
 		nostippleTests->addChild(new BaseTestCase<TriangleFanTestInstance>		(testCtx, "triangle_fan",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, verify rasterization result"));
-		nostippleTests->addChild(new WidenessTestCase<PointTestInstance>		(testCtx, "points",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_POINT_LIST, verify rasterization result",					PRIMITIVEWIDENESS_WIDE, false, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+		nostippleTests->addChild(new WidenessTestCase<PointTestInstance>		(testCtx, "points",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_POINT_LIST, verify rasterization result",					PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, false, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+
+		nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "strict_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in strict mode, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+		nostippleTests->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "strict_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP in strict mode, verify rasterization result",					PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+		nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "strict_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in strict mode with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+		nostippleTests->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "strict_line_strip_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP in strict mode with wide lines, verify rasterization result",	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+
+		nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "non_strict_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in nonstrict mode, verify rasterization result",					PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+		nostippleTests->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "non_strict_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP in nonstrict mode, verify rasterization result",					PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+		nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "non_strict_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in nonstrict mode with wide lines, verify rasterization result",	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+		nostippleTests->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "non_strict_line_strip_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP in nonstrict mode with wide lines, verify rasterization result",	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT, true, VK_SAMPLE_COUNT_1_BIT, LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
 
 		for (int i = 0; i < 3; ++i) {
 
@@ -3935,25 +4056,25 @@
 
 			LineStipple stipple = (LineStipple)i;
 
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines",						"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, i == 0 ? RESOLUTION_NPOT : 0));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines_wide",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines",						"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, i == 0 ? RESOLUTION_NPOT : 0));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines_wide",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
 
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip_wide","Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip_wide","Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
 
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
 
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
-			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
-			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+			g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+			g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, VK_SAMPLE_COUNT_1_BIT, stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
 		}
 	}
 
@@ -4128,10 +4249,20 @@
 			basic->addChild(new TriangleInterpolationTestCase		(testCtx, "triangles",		"Verify triangle interpolation",		VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	INTERPOLATIONFLAGS_NONE));
 			basic->addChild(new TriangleInterpolationTestCase		(testCtx, "triangle_strip",	"Verify triangle strip interpolation",	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,	INTERPOLATIONFLAGS_NONE));
 			basic->addChild(new TriangleInterpolationTestCase		(testCtx, "triangle_fan",	"Verify triangle fan interpolation",	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,		INTERPOLATIONFLAGS_NONE));
-			basic->addChild(new LineInterpolationTestCase			(testCtx, "lines",			"Verify line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW));
-			basic->addChild(new LineInterpolationTestCase			(testCtx, "line_strip",		"Verify line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW));
-			basic->addChild(new LineInterpolationTestCase			(testCtx, "lines_wide",		"Verify wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE));
-			basic->addChild(new LineInterpolationTestCase			(testCtx, "line_strip_wide","Verify wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "lines",			"Verify line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "line_strip",		"Verify line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "lines_wide",		"Verify wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "line_strip_wide","Verify wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE));
+
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "strict_lines",			"Verify strict line interpolation",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "strict_line_strip",		"Verify strict line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "strict_lines_wide",		"Verify strict wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "strict_line_strip_wide",	"Verify strict wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT));
+
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_lines",			"Verify non-strict line interpolation",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_line_strip",		"Verify non-strict line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_lines_wide",		"Verify non-strict wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT));
+			basic->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_line_strip_wide",	"Verify non-strict wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,	INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT));
 		}
 
 		// .projected
@@ -4143,10 +4274,20 @@
 			projected->addChild(new TriangleInterpolationTestCase	(testCtx, "triangles",		"Verify triangle interpolation",		VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	INTERPOLATIONFLAGS_PROJECTED));
 			projected->addChild(new TriangleInterpolationTestCase	(testCtx, "triangle_strip",	"Verify triangle strip interpolation",	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,	INTERPOLATIONFLAGS_PROJECTED));
 			projected->addChild(new TriangleInterpolationTestCase	(testCtx, "triangle_fan",	"Verify triangle fan interpolation",	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,		INTERPOLATIONFLAGS_PROJECTED));
-			projected->addChild(new LineInterpolationTestCase		(testCtx, "lines",			"Verify line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW));
-			projected->addChild(new LineInterpolationTestCase		(testCtx, "line_strip",		"Verify line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW));
-			projected->addChild(new LineInterpolationTestCase		(testCtx, "lines_wide",		"Verify wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE));
-			projected->addChild(new LineInterpolationTestCase		(testCtx, "line_strip_wide","Verify wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "lines",			"Verify line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "line_strip",		"Verify line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "lines_wide",		"Verify wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "line_strip_wide","Verify wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE));
+
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "strict_lines",			"Verify strict line interpolation",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "strict_line_strip",		"Verify strict line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "strict_lines_wide",		"Verify strict wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "strict_line_strip_wide",	"Verify strict wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT));
+
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "non_strict_lines",			"Verify non-strict line interpolation",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "non_strict_line_strip",		"Verify non-strict line strip interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "non_strict_lines_wide",		"Verify non-strict wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT));
+			projected->addChild(new LineInterpolationTestCase		(testCtx, "non_strict_line_strip_wide",	"Verify non-strict wide line strip interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_PROJECTED,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT));
 		}
 	}
 
@@ -4159,10 +4300,20 @@
 		flatshading->addChild(new TriangleInterpolationTestCase		(testCtx, "triangles",		"Verify triangle flatshading",			VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	INTERPOLATIONFLAGS_FLATSHADE));
 		flatshading->addChild(new TriangleInterpolationTestCase		(testCtx, "triangle_strip",	"Verify triangle strip flatshading",	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,	INTERPOLATIONFLAGS_FLATSHADE));
 		flatshading->addChild(new TriangleInterpolationTestCase		(testCtx, "triangle_fan",	"Verify triangle fan flatshading",		VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,		INTERPOLATIONFLAGS_FLATSHADE));
-		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "lines",			"Verify line flatshading",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW));
-		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "line_strip",		"Verify line strip flatshading",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW));
-		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "lines_wide",		"Verify wide line flatshading",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE));
-		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "line_strip_wide","Verify wide line strip flatshading",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "lines",			"Verify line flatshading",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "line_strip",		"Verify line strip flatshading",		VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "lines_wide",		"Verify wide line flatshading",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "line_strip_wide","Verify wide line strip flatshading",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE));
+
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "strict_lines",			"Verify strict line flatshading",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "strict_line_strip",		"Verify strict line strip flatshading",			VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "strict_lines_wide",		"Verify strict wide line flatshading",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "strict_line_strip_wide",	"Verify strict wide line strip flatshading",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT));
+
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_lines",			"Verify non-strict line flatshading",				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_line_strip",		"Verify non-strict line strip flatshading",			VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_lines_wide",		"Verify non-strict wide line flatshading",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT));
+		flatshading->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_line_strip_wide",	"Verify non-strict wide line strip flatshading",	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,		INTERPOLATIONFLAGS_FLATSHADE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT));
 	}
 
 	const VkSampleCountFlagBits samples[] =
@@ -4196,7 +4347,13 @@
 			primitives->addChild(stippleDynamicTests);
 
 			nostippleTests->addChild(new BaseTestCase<TrianglesTestInstance>		(testCtx, "triangles",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, verify rasterization result",					samples[samplesNdx]));
-			nostippleTests->addChild(new WidenessTestCase<PointTestInstance>		(testCtx, "points",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_POINT_LIST, verify rasterization result",						PRIMITIVEWIDENESS_WIDE,	false, samples[samplesNdx], LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+			nostippleTests->addChild(new WidenessTestCase<PointTestInstance>		(testCtx, "points",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_POINT_LIST, verify rasterization result",						PRIMITIVEWIDENESS_WIDE,	PRIMITIVESTRICTNESS_IGNORE,	false, samples[samplesNdx], LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+
+			nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "strict_lines",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in strict mode, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT,	true, samples[samplesNdx], LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+			nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "strict_lines_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in strict mode with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT,	true, samples[samplesNdx], LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+
+			nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "non_strict_lines",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in nonstrict mode, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT,	true, samples[samplesNdx], LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
+			nostippleTests->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "non_strict_lines_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST in nonstrict mode with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT,	true, samples[samplesNdx], LINESTIPPLE_DISABLED, VK_LINE_RASTERIZATION_MODE_EXT_LAST));
 
 			for (int i = 0; i < 3; ++i) {
 
@@ -4204,25 +4361,25 @@
 
 				LineStipple stipple = (LineStipple)i;
 
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines",						"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, i == 0 ? RESOLUTION_NPOT : 0));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines_wide",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines",						"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, i == 0 ? RESOLUTION_NPOT : 0));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "lines_wide",					"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "line_strip_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT));
 
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip_wide","Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "rectangular_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "rectangular_line_strip_wide","Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
 
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "bresenham_lines_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "bresenham_line_strip_wide",	"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
 
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
-				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
-				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines",				"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, verify rasterization result",						PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+				g->addChild(new WidenessTestCase<LinesTestInstance>		(testCtx, "smooth_lines_wide",			"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_LIST with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
+				g->addChild(new WidenessTestCase<LineStripTestInstance>	(testCtx, "smooth_line_strip_wide",		"Render primitives as VK_PRIMITIVE_TOPOLOGY_LINE_STRIP with wide lines, verify rasterization result",		PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE, true, samples[samplesNdx], stipple, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT));
 			}
 		}
 
@@ -4245,9 +4402,15 @@
 
 			rasterizationTests->addChild(interpolation);
 
-			interpolation->addChild(new TriangleInterpolationTestCase		(testCtx, "triangles",		"Verify triangle interpolation",		VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	INTERPOLATIONFLAGS_NONE,								samples[samplesNdx]));
-			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "lines",			"Verify line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	samples[samplesNdx]));
-			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "lines_wide",		"Verify wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		samples[samplesNdx]));
+			interpolation->addChild(new TriangleInterpolationTestCase		(testCtx, "triangles",		"Verify triangle interpolation",		VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	INTERPOLATIONFLAGS_NONE,															samples[samplesNdx]));
+			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "lines",			"Verify line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_IGNORE,	samples[samplesNdx]));
+			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "lines_wide",		"Verify wide line interpolation",		VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_IGNORE,	samples[samplesNdx]));
+
+			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "strict_lines",			"Verify strict line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_STRICT,	samples[samplesNdx]));
+			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "strict_lines_wide",		"Verify strict wide line interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_STRICT,	samples[samplesNdx]));
+
+			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_lines",			"Verify non-strict line interpolation",			VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_NARROW,	PRIMITIVESTRICTNESS_NONSTRICT,	samples[samplesNdx]));
+			interpolation->addChild(new LineInterpolationTestCase			(testCtx, "non_strict_lines_wide",		"Verify non-strict wide line interpolation",	VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		INTERPOLATIONFLAGS_NONE,	PRIMITIVEWIDENESS_WIDE,		PRIMITIVESTRICTNESS_NONSTRICT,	samples[samplesNdx]));
 		}
 	}
 
diff --git a/external/vulkancts/modules/vulkan/renderpass/CMakeLists.txt b/external/vulkancts/modules/vulkan/renderpass/CMakeLists.txt
index 0a2464f..b4fcc66 100644
--- a/external/vulkancts/modules/vulkan/renderpass/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/renderpass/CMakeLists.txt
@@ -27,6 +27,8 @@
 	vktRenderPassUnusedClearAttachmentTests.hpp
 	vktRenderPassFragmentDensityMapTests.cpp
 	vktRenderPassFragmentDensityMapTests.hpp
+	vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp
+	vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.hpp
 	)
 
 set(DEQP_VK_RENDER_PASS_LIBS
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp
index 21bd29e..01a8803 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp
@@ -30,23 +30,31 @@
 #include "vkCmdUtil.hpp"
 #include "vkRefUtil.hpp"
 #include "vkObjUtil.hpp"
+#include "vkBuilderUtil.hpp"
 #include "tcuTestLog.hpp"
 #include <sstream>
 #include <vector>
 
 // Each test generates an image with a color gradient where all colors should be unique when rendered without density map
-// ( the number of each color in a histogram should be 1 ).
+// ( and for multi_view tests - the quantity of each color in a histogram should be 2 instead of 1 ).
 // The whole density map has the same values defined by input fragment area ( one of the test input parameters ).
-// With density map enabled - the number of each color in a histogram should be [ fragmentArea.x * fragmentArea.y ].
+// With density map enabled - the number of each color in a histogram should be [ fragmentArea.x * fragmentArea.y ]
+// ( that value will be doubled for multi_view case ).
 //
 // Additionally test checks if gl_FragSizeEXT shader variable has proper value ( as defined by fragmentArea input parameter ).
 //
-// static_* tests use density map loaded from CPU.
-// dynamic_* tests use density map rendered on a GPU in a separate render pass
-// *_nonsubsampled tests check if it's possible to use nonsubsampled images instead of subsampled ones
+// Test variations:
+// - multi_view tests check if density map also works when VK_KHR_multiview extension is in use
+// - render_copy tests check if it's possible to copy results using input attachment descriptor ( this simulates deferred rendering behaviour )
+// - non_divisible_density_size tests check if subsampled images work when its dimension is not divisible by minFragmentDensityTexelSize
+// - N_samples tests check if multisampling works with VK_EXT_fragment_density_map extension
+// - static_* tests use density map loaded from CPU.
+// - dynamic_* tests use density map rendered on a GPU in a separate render pass
+// - *_nonsubsampled tests check if it's possible to use nonsubsampled images instead of subsampled ones
+
 // There are 3 render passes performed during the test:
 //  - render pass that produces density map ( this rp is skipped when density map is static )
-//  - render pass that produces subsampled image using density map
+//  - render pass that produces subsampled image using density map and eventually copies results to different image ( render_copy )
 //  - render pass that copies subsampled image to traditional image using sampler with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT flag.
 //    ( because subsampled images cannot be retrieved to CPU in any other way ).
 
@@ -66,27 +74,35 @@
 
 struct TestParams
 {
-	TestParams(bool dynamicDensity, bool nonSubsampled, const tcu::UVec2& area)
-		: dynamicDensityMap{ dynamicDensity }, nonSubsampledImages{ nonSubsampled }, fragmentArea{ area }, densityMapFormat{ VK_FORMAT_R8G8_UNORM }
-	{}
-	bool		dynamicDensityMap;
-	bool		nonSubsampledImages;
-	tcu::UVec2	fragmentArea;
-	VkFormat	densityMapFormat;
+	TestParams(bool dynamicDensity, bool nonSubsampled, bool multiview, bool copy, float renderSizeMultiplier, VkSampleCountFlagBits samples, const tcu::UVec2& area )
+		: dynamicDensityMap{ dynamicDensity }, nonSubsampledImages{ nonSubsampled }, multiView{ multiview }, makeCopy{ copy }, densityMapSize{16,16}, colorSamples{ samples }, fragmentArea{ area }, densityMapFormat{ VK_FORMAT_R8G8_UNORM }
+	{
+		renderSize		= tcu::UVec2(deFloorFloatToInt32(renderSizeMultiplier * static_cast<float>(densityMapSize.x())), deFloorFloatToInt32(renderSizeMultiplier * static_cast<float>(densityMapSize.y())));
+	}
+	bool					dynamicDensityMap;
+	bool					nonSubsampledImages;
+	bool					multiView;
+	bool					makeCopy;
+	tcu::UVec2				densityMapSize;
+	tcu::UVec2				renderSize;
+	VkSampleCountFlagBits	colorSamples;
+	tcu::UVec2				fragmentArea;
+	VkFormat				densityMapFormat;
 };
 
 struct Vertex4RGBA
 {
 	tcu::Vec4	position;
+	tcu::Vec4	uv;
 	tcu::Vec4	color;
 };
 
 std::vector<Vertex4RGBA> createFullscreenQuadRG(void)
 {
-	const Vertex4RGBA lowerLeftVertex	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperLeftVertex	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA lowerRightVertex	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperRightVertex	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA lowerLeftVertex	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA upperLeftVertex	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA lowerRightVertex	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA upperRightVertex	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f) };
 
 	return
 	{
@@ -97,10 +113,10 @@
 
 std::vector<Vertex4RGBA> createFullscreenQuadDensity(float densityX, float densityY)
 {
-	const Vertex4RGBA lowerLeftVertex	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
-	const Vertex4RGBA upperLeftVertex	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
-	const Vertex4RGBA lowerRightVertex	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
-	const Vertex4RGBA upperRightVertex	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
+	const Vertex4RGBA lowerLeftVertex	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
+	const Vertex4RGBA upperLeftVertex	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
+	const Vertex4RGBA lowerRightVertex	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
+	const Vertex4RGBA upperRightVertex	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
 
 	return
 	{
@@ -109,6 +125,35 @@
 	};
 };
 
+std::vector<Vertex4RGBA> createFullscreenMeshOutput(bool isMultiview)
+{
+	float midX = isMultiview ? 0.0f : 1.0f;
+
+	const Vertex4RGBA lowerLeftVertex0	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA upperLeftVertex0	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA lowerRightVertex0	= { tcu::Vec4(midX, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA upperRightVertex0	= { tcu::Vec4(midX, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+
+	const Vertex4RGBA lowerLeftVertex1	= { tcu::Vec4(midX, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA upperLeftVertex1	= { tcu::Vec4(midX, -1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 0.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA lowerRightVertex1	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+	const Vertex4RGBA upperRightVertex1	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+
+	if(isMultiview)
+		return
+		{
+			lowerLeftVertex0, lowerRightVertex0, upperLeftVertex0,
+			upperLeftVertex0, lowerRightVertex0, upperRightVertex0,
+			lowerLeftVertex1, lowerRightVertex1, upperLeftVertex1,
+			upperLeftVertex1, lowerRightVertex1, upperRightVertex1
+		};
+	return
+	{
+		lowerLeftVertex0, lowerRightVertex0, upperLeftVertex0,
+		upperLeftVertex0, lowerRightVertex0, upperRightVertex0
+	};
+}
+
 template <typename T>
 void createVertexBuffer(const DeviceInterface&		vk,
 						VkDevice					vkDevice,
@@ -139,6 +184,65 @@
 	flushAlloc(vk, vkDevice, *vertexAlloc);
 }
 
+void prepareImageAndImageView	(const DeviceInterface&			vk,
+								 VkDevice						vkDevice,
+								 SimpleAllocator&				memAlloc,
+								 VkImageCreateFlags				imageCreateFlags,
+								 VkFormat						format,
+								 VkExtent3D						extent,
+								 deUint32						arrayLayers,
+								 VkSampleCountFlagBits			samples,
+								 VkImageUsageFlags				usage,
+								 deUint32						queueFamilyIndex,
+								 VkImageViewCreateFlags			viewFlags,
+								 VkImageViewType				viewType,
+								 const VkComponentMapping&		channels,
+								 const VkImageSubresourceRange&	subresourceRange,
+								 Move<VkImage>&					image,
+								 de::MovePtr<Allocation>&		imageAlloc,
+								 Move<VkImageView>&				imageView)
+{
+	const VkImageCreateInfo imageCreateInfo
+	{
+		VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,		// VkStructureType			sType;
+		DE_NULL,									// const void*				pNext;
+		imageCreateFlags,							// VkImageCreateFlags		flags;
+		VK_IMAGE_TYPE_2D,							// VkImageType				imageType;
+		format,										// VkFormat					format;
+		extent,										// VkExtent3D				extent;
+		1u,											// deUint32					mipLevels;
+		arrayLayers,								// deUint32					arrayLayers;
+		samples,									// VkSampleCountFlagBits	samples;
+		VK_IMAGE_TILING_OPTIMAL,					// VkImageTiling			tiling;
+		usage,										// VkImageUsageFlags		usage;
+		VK_SHARING_MODE_EXCLUSIVE,					// VkSharingMode			sharingMode;
+		1u,											// deUint32					queueFamilyIndexCount;
+		&queueFamilyIndex,							// const deUint32*			pQueueFamilyIndices;
+		VK_IMAGE_LAYOUT_UNDEFINED					// VkImageLayout			initialLayout;
+	};
+
+	image = createImage(vk, vkDevice, &imageCreateInfo);
+
+	// Allocate and bind color image memory
+	imageAlloc = memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *image), MemoryRequirement::Any);
+	VK_CHECK(vk.bindImageMemory(vkDevice, *image, imageAlloc->getMemory(), imageAlloc->getOffset()));
+
+	// create image view for subsampled image
+	const VkImageViewCreateInfo imageViewCreateInfo =
+	{
+		VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,	// VkStructureType			sType;
+		DE_NULL,									// const void*				pNext;
+		viewFlags,									// VkImageViewCreateFlags	flags;
+		*image,										// VkImage					image;
+		viewType,									// VkImageViewType			viewType;
+		format,										// VkFormat					format;
+		channels,									// VkChannelMapping			channels;
+		subresourceRange							// VkImageSubresourceRange	subresourceRange;
+	};
+
+	imageView = createImageView(vk, vkDevice, &imageViewCreateInfo);
+}
+
 template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
 Move<VkRenderPass> createRenderPassProduceDynamicDensityMap(const DeviceInterface&	vk,
 															VkDevice				vkDevice,
@@ -172,7 +276,7 @@
 			DE_NULL,
 			(VkSubpassDescriptionFlags)0,										// VkSubpassDescriptionFlags		flags
 			VK_PIPELINE_BIND_POINT_GRAPHICS,									// VkPipelineBindPoint				pipelineBindPoint
-			0u,																	// deUint32							viewMask
+			testParams.multiView ? 0x3u : 0x0u,									// deUint32							viewMask
 			0u,																	// deUint32							inputAttachmentCount
 			DE_NULL,															// const VkAttachmentReference*		pInputAttachments
 			static_cast<deUint32>(colorAttachmentRefs.size()),					// deUint32							colorAttachmentCount
@@ -202,15 +306,33 @@
 		);
 	};
 
+	vk::VkRenderPassMultiviewCreateInfo	renderPassMultiviewCreateInfo;
+	void*								renderPassInfoPNext	= DE_NULL;
+	std::vector<deUint32>				viewMasks(subpassDescriptions.size(), 0x3u);
+
+	if (testParams.multiView)
+	{
+
+		renderPassMultiviewCreateInfo.sType					= VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
+		renderPassMultiviewCreateInfo.pNext					= renderPassInfoPNext;
+		renderPassMultiviewCreateInfo.subpassCount			= static_cast<deUint32>(viewMasks.size());
+		renderPassMultiviewCreateInfo.pViewMasks			= viewMasks.data();
+		renderPassMultiviewCreateInfo.dependencyCount		= 0;
+		renderPassMultiviewCreateInfo.pViewOffsets			= DE_NULL;
+		renderPassMultiviewCreateInfo.correlationMaskCount	= 0U;
+		renderPassMultiviewCreateInfo.pCorrelationMasks		= DE_NULL;
+		renderPassInfoPNext									= (void*)&renderPassMultiviewCreateInfo;
+	}
+
 	const RenderPassCreateInfo	renderPassInfo(
-		DE_NULL,																// const void*						pNext
+		renderPassInfoPNext,													// const void*						pNext
 		(VkRenderPassCreateFlags)0,												// VkRenderPassCreateFlags			flags
 		static_cast<deUint32>(attachmentDescriptions.size()),					// deUint32							attachmentCount
 		attachmentDescriptions.data(),											// const VkAttachmentDescription*	pAttachments
 		static_cast<deUint32>(subpassDescriptions.size()),						// deUint32							subpassCount
 		subpassDescriptions.data(),												// const VkSubpassDescription*		pSubpasses
 		static_cast<deUint32>(subpassDependencies.size()),						// deUint32							dependencyCount
-		(!testParams.dynamicDensityMap) ? DE_NULL : subpassDependencies.data(),	// const VkSubpassDependency*		pDependencies
+		subpassDependencies.empty() ? DE_NULL : subpassDependencies.data(),		// const VkSubpassDependency*		pDependencies
 		0u,																		// deUint32							correlatedViewMaskCount
 		DE_NULL																	// const deUint32*					pCorrelatedViewMasks
 	);
@@ -219,11 +341,11 @@
 }
 
 template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
-Move<VkRenderPass> createRenderPassProduceSubsampledImage(const DeviceInterface&	vk,
-													 VkDevice				vkDevice,
-													 const TestParams&		testParams)
+Move<VkRenderPass> createRenderPassProduceSubsampledImage(const				DeviceInterface&	vk,
+														  VkDevice			vkDevice,
+														  const TestParams&	testParams)
 {
-	DE_UNREF(testParams);
+	// add color image
 	std::vector<AttachmentDesc>		attachmentDescriptions
 	{
 		// Output color attachment
@@ -231,7 +353,7 @@
 			DE_NULL,																// const void*						pNext
 			(VkAttachmentDescriptionFlags)0,										// VkAttachmentDescriptionFlags		flags
 			VK_FORMAT_R8G8B8A8_UNORM,												// VkFormat							format
-			VK_SAMPLE_COUNT_1_BIT,													// VkSampleCountFlagBits			samples
+			testParams.colorSamples,												// VkSampleCountFlagBits			samples
 			VK_ATTACHMENT_LOAD_OP_CLEAR,											// VkAttachmentLoadOp				loadOp
 			VK_ATTACHMENT_STORE_OP_STORE,											// VkAttachmentStoreOp				storeOp
 			VK_ATTACHMENT_LOAD_OP_DONT_CARE,										// VkAttachmentLoadOp				stencilLoadOp
@@ -240,9 +362,54 @@
 			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL								// VkImageLayout					finalLayout
 		}
 	};
+	deUint32 multisampleAttachmentIndex	= 0;
+	deUint32 copyAttachmentIndex		= 0;
+	deUint32 densityMapAttachmentIndex	= 0;
+
+	// add resolve image when we use more than one sample per fragment
+	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+	{
+		multisampleAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
+		attachmentDescriptions.emplace_back(
+			AttachmentDesc(
+				DE_NULL,															// const void*						pNext
+				(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
+				VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
+				VK_SAMPLE_COUNT_1_BIT,												// VkSampleCountFlagBits			samples
+				VK_ATTACHMENT_LOAD_OP_CLEAR,										// VkAttachmentLoadOp				loadOp
+				VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
+				VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
+				VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
+				VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
+			)
+		);
+	}
+
+	// add color image copy ( when render_copy is used )
+	if (testParams.makeCopy)
+	{
+		copyAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
+		attachmentDescriptions.emplace_back(
+			AttachmentDesc(
+				DE_NULL,															// const void*						pNext
+				(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
+				VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
+				testParams.colorSamples,											// VkSampleCountFlagBits			samples
+				VK_ATTACHMENT_LOAD_OP_CLEAR,										// VkAttachmentLoadOp				loadOp
+				VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
+				VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
+				VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
+				VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
+			)
+		);
+	}
 
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
+	// add density map
 	{
+		densityMapAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
 		attachmentDescriptions.emplace_back(
 			AttachmentDesc(
 				DE_NULL,															// const void*						pNext
@@ -260,34 +427,91 @@
 	}
 #endif
 
-	std::vector<AttachmentRef> colorAttachmentRefs
+	std::vector<AttachmentRef> colorAttachmentRefs0
 	{
 		{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
 	};
 
-	std::vector<SubpassDesc>	subpassDescriptions
+	std::vector<AttachmentRef> resolveAttachmentRefs0;
+
+	// for multisampled scenario without copying results - we need to add resolve attachment
+	if(testParams.colorSamples!= VK_SAMPLE_COUNT_1_BIT && !testParams.makeCopy)
+	{
+		resolveAttachmentRefs0.push_back( { DE_NULL, multisampleAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT } );
+	};
+
+	std::vector<SubpassDesc> subpassDescriptions
 	{
 		{
 			DE_NULL,
-			(VkSubpassDescriptionFlags)0,											// VkSubpassDescriptionFlags	flags
-			VK_PIPELINE_BIND_POINT_GRAPHICS,										// VkPipelineBindPoint			pipelineBindPoint
-			0u,																		// deUint32						viewMask
-			0u,																		// deUint32						inputAttachmentCount
-			DE_NULL,																// const VkAttachmentReference*	pInputAttachments
-			static_cast<deUint32>(colorAttachmentRefs.size()),						// deUint32						colorAttachmentCount
-			colorAttachmentRefs.data(),												// const VkAttachmentReference*	pColorAttachments
-			DE_NULL,																// const VkAttachmentReference*	pResolveAttachments
-			DE_NULL,																// const VkAttachmentReference*	pDepthStencilAttachment
-			0u,																		// deUint32						preserveAttachmentCount
-			DE_NULL																	// const deUint32*				pPreserveAttachments
+			(VkSubpassDescriptionFlags)0,												// VkSubpassDescriptionFlags	flags
+			VK_PIPELINE_BIND_POINT_GRAPHICS,											// VkPipelineBindPoint			pipelineBindPoint
+			testParams.multiView ? 0x3u : 0x0u,											// deUint32						viewMask
+			0u,																			// deUint32						inputAttachmentCount
+			DE_NULL,																	// const VkAttachmentReference*	pInputAttachments
+			static_cast<deUint32>(colorAttachmentRefs0.size()),							// deUint32						colorAttachmentCount
+			colorAttachmentRefs0.data(),												// const VkAttachmentReference*	pColorAttachments
+			resolveAttachmentRefs0.empty() ? DE_NULL : resolveAttachmentRefs0.data(),	// const VkAttachmentReference*	pResolveAttachments
+			DE_NULL,																	// const VkAttachmentReference*	pDepthStencilAttachment
+			0u,																			// deUint32						preserveAttachmentCount
+			DE_NULL																		// const deUint32*				pPreserveAttachments
 		}
 	};
 
-	std::vector<SubpassDep>		subpassDependencies
+	std::vector<AttachmentRef> inputAttachmentRefs1
 	{
-		{
+		{ DE_NULL, 0u, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
+	};
+	std::vector<AttachmentRef> colorAttachmentRefs1
+	{
+		{ DE_NULL, copyAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
+	};
+	std::vector<AttachmentRef> resolveAttachmentRefs1;
+	if (testParams.makeCopy)
+	{
+		if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+			resolveAttachmentRefs1.push_back({ DE_NULL, multisampleAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT });
+
+		subpassDescriptions.push_back(
+			{
+				DE_NULL,
+				(VkSubpassDescriptionFlags)0,												// VkSubpassDescriptionFlags	flags
+				VK_PIPELINE_BIND_POINT_GRAPHICS,											// VkPipelineBindPoint			pipelineBindPoint
+				testParams.multiView ? 0x3u : 0x0u,											// deUint32						viewMask
+				static_cast<deUint32>(inputAttachmentRefs1.size()),							// deUint32						inputAttachmentCount
+				inputAttachmentRefs1.data(),												// const VkAttachmentReference*	pInputAttachments
+				static_cast<deUint32>(colorAttachmentRefs1.size()),							// deUint32						colorAttachmentCount
+				colorAttachmentRefs1.data(),												// const VkAttachmentReference*	pColorAttachments
+				resolveAttachmentRefs1.empty() ? DE_NULL : resolveAttachmentRefs1.data(),	// const VkAttachmentReference*	pResolveAttachments
+				DE_NULL,																	// const VkAttachmentReference*	pDepthStencilAttachment
+				0u,																			// deUint32						preserveAttachmentCount
+				DE_NULL																		// const deUint32*				pPreserveAttachments
+			}
+		);
+	}
+
+	std::vector<SubpassDep> subpassDependencies;
+	if(testParams.makeCopy)
+	{
+		VkDependencyFlags dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
+		if (testParams.multiView)
+			dependencyFlags |= VK_DEPENDENCY_VIEW_LOCAL_BIT;
+
+		subpassDependencies.push_back({
+				DE_NULL,															// const void*				pNext
+				0u,																	// uint32_t					srcSubpass
+				1u,																	// uint32_t					dstSubpass
+				VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,						// VkPipelineStageFlags		srcStageMask
+				VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,								// VkPipelineStageFlags		dstStageMask
+				VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,								// VkAccessFlags			srcAccessMask
+				VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,								// VkAccessFlags			dstAccessMask
+				dependencyFlags,													// VkDependencyFlags		dependencyFlags
+				0u																	// deInt32					viewOffset
+		});
+	}
+	subpassDependencies.push_back({
 			DE_NULL,																// const void*				pNext
-			0u,																		// uint32_t					srcSubpass
+			testParams.makeCopy ? 1u : 0u,											// uint32_t					srcSubpass
 			VK_SUBPASS_EXTERNAL,													// uint32_t					dstSubpass
 			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,							// VkPipelineStageFlags		srcStageMask
 			VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,									// VkPipelineStageFlags		dstStageMask
@@ -295,19 +519,37 @@
 			VK_ACCESS_SHADER_READ_BIT,												// VkAccessFlags			dstAccessMask
 			VK_DEPENDENCY_BY_REGION_BIT,											// VkDependencyFlags		dependencyFlags
 			0u																		// deInt32					viewOffset
-		}
-	};
+		});
 
 	VkRenderPassFragmentDensityMapCreateInfoEXT renderPassFragmentDensityMap;
 	renderPassFragmentDensityMap.sType							= VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
 	renderPassFragmentDensityMap.pNext							= DE_NULL;
-	renderPassFragmentDensityMap.fragmentDensityMapAttachment	= { 1, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT };
+	renderPassFragmentDensityMap.fragmentDensityMapAttachment	= { densityMapAttachmentIndex, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT };
 
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	const void* renderPassInfoPNext = (const void*)&renderPassFragmentDensityMap;
+	void* renderPassInfoPNext = (void*)&renderPassFragmentDensityMap;
 #else
-	const void* renderPassInfoPNext = DE_NULL;
+	void* renderPassInfoPNext = DE_NULL;
 #endif
+
+	vk::VkRenderPassMultiviewCreateInfo	renderPassMultiviewCreateInfo;
+	std::vector<deUint32>				viewMasks(subpassDescriptions.size(), 0x3u);
+	deInt32								pViewOffsets = 0;
+
+	if (testParams.multiView)
+	{
+
+		renderPassMultiviewCreateInfo.sType					= VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
+		renderPassMultiviewCreateInfo.pNext					= renderPassInfoPNext;
+		renderPassMultiviewCreateInfo.subpassCount			= static_cast<deUint32>(viewMasks.size());
+		renderPassMultiviewCreateInfo.pViewMasks			= viewMasks.data();
+		renderPassMultiviewCreateInfo.dependencyCount		= testParams.makeCopy ? 1 : 0;
+		renderPassMultiviewCreateInfo.pViewOffsets			= testParams.makeCopy ? &pViewOffsets : DE_NULL;
+		renderPassMultiviewCreateInfo.correlationMaskCount	= 0U;
+		renderPassMultiviewCreateInfo.pCorrelationMasks		= DE_NULL;
+		renderPassInfoPNext									= (void*)&renderPassMultiviewCreateInfo;
+	}
+
 	const RenderPassCreateInfo	renderPassInfo(
 		renderPassInfoPNext,														// const void*						pNext
 		(VkRenderPassCreateFlags)0,													// VkRenderPassCreateFlags			flags
@@ -387,7 +629,7 @@
 	return renderPassInfo.createRenderPass(vk, vkDevice);
 }
 
-Move<VkFramebuffer> createFrameBuffer( const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, const tcu::UVec2& renderSize, const std::vector<VkImageView>& imageViews)
+Move<VkFramebuffer> createFrameBuffer( const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, deUint32 width, deUint32 height, const std::vector<VkImageView>& imageViews)
 {
 	const VkFramebufferCreateInfo	framebufferParams =
 	{
@@ -397,8 +639,8 @@
 		renderPass,									// VkRenderPass				renderPass;
 		static_cast<deUint32>(imageViews.size()),	// deUint32					attachmentCount;
 		imageViews.data(),							// const VkImageView*		pAttachments;
-		renderSize.x(),								// deUint32					width;
-		renderSize.y(),								// deUint32					height;
+		width,										// deUint32					width;
+		height,										// deUint32					height;
 		1u											// deUint32					layers;
 	};
 
@@ -423,15 +665,13 @@
 class FragmentDensityMapTestInstance : public vkt::TestInstance
 {
 public:
-													FragmentDensityMapTestInstance	(Context&				context,
-																					 const TestParams&		testParams);
+													FragmentDensityMapTestInstance	(Context&					context,
+																					 const TestParams&			testParams);
 	virtual tcu::TestStatus							iterate							(void);
 private:
 	tcu::TestStatus									verifyImage						(void);
 
 	TestParams										m_testParams;
-	const tcu::UVec2								m_renderSize;
-	const tcu::UVec2								m_densityMapSize;
 
 	VkPhysicalDeviceFragmentDensityMapPropertiesEXT	m_fragmentDensityMapProperties;
 
@@ -445,6 +685,14 @@
 	de::MovePtr<Allocation>							m_colorImageAlloc;
 	Move<VkImageView>								m_colorImageView;
 
+	Move<VkImage>									m_colorCopyImage;
+	de::MovePtr<Allocation>							m_colorCopyImageAlloc;
+	Move<VkImageView>								m_colorCopyImageView;
+
+	Move<VkImage>									m_colorResolvedImage;
+	de::MovePtr<Allocation>							m_colorResolvedImageAlloc;
+	Move<VkImageView>								m_colorResolvedImageView;
+
 	Move<VkImage>									m_outputImage;
 	de::MovePtr<Allocation>							m_outputImageAlloc;
 	Move<VkImageView>								m_outputImageView;
@@ -459,26 +707,38 @@
 	Move<VkFramebuffer>								m_framebufferOutputSubsampledImage;
 
 	Move<VkDescriptorSetLayout>						m_descriptorSetLayoutProduceSubsampled;
+
+	Move<VkDescriptorSetLayout>						m_descriptorSetLayoutCopySubsampledImage;
+	Move<VkDescriptorPool>							m_descriptorPoolCopySubsampledImage;
+	Move<VkDescriptorSet>							m_descriptorSetCopySubsampledImage;
+
 	Move<VkDescriptorSetLayout>						m_descriptorSetLayoutOutputSubsampledImage;
 	Move<VkDescriptorPool>							m_descriptorPoolOutputSubsampledImage;
 	Move<VkDescriptorSet>							m_descriptorSetOutputSubsampledImage;
 
 	Move<VkShaderModule>							m_vertexCommonShaderModule;
 	Move<VkShaderModule>							m_fragmentShaderModuleProduceSubsampledImage;
+	Move<VkShaderModule>							m_fragmentShaderModuleCopySubsampledImage;
 	Move<VkShaderModule>							m_fragmentShaderModuleOutputSubsampledImage;
 
-	Move<VkBuffer>									m_vertexBuffer;
-	std::vector<Vertex4RGBA>						m_vertices;
-	de::MovePtr<Allocation>							m_vertexBufferAlloc;
-
-	Move<VkBuffer>									m_vertexBufferDDM;
 	std::vector<Vertex4RGBA>						m_verticesDDM;
+	Move<VkBuffer>									m_vertexBufferDDM;
 	de::MovePtr<Allocation>							m_vertexBufferAllocDDM;
 
-	Move<VkPipelineLayout>							m_pipelineLayoutProduceSubsampledImage;
+	std::vector<Vertex4RGBA>						m_vertices;
+	Move<VkBuffer>									m_vertexBuffer;
+	de::MovePtr<Allocation>							m_vertexBufferAlloc;
+
+	std::vector<Vertex4RGBA>						m_verticesOutput;
+	Move<VkBuffer>									m_vertexBufferOutput;
+	de::MovePtr<Allocation>							m_vertexBufferOutputAlloc;
+
+	Move<VkPipelineLayout>							m_pipelineLayoutNoDescriptors;
+	Move<VkPipelineLayout>							m_pipelineLayoutCopySubsampledImage;
 	Move<VkPipelineLayout>							m_pipelineLayoutOutputSubsampledImage;
 	Move<VkPipeline>								m_graphicsPipelineProduceDynamicDensityMap;
 	Move<VkPipeline>								m_graphicsPipelineProduceSubsampledImage;
+	Move<VkPipeline>								m_graphicsPipelineCopySubsampledImage;
 	Move<VkPipeline>								m_graphicsPipelineOutputSubsampledImage;
 
 	Move<VkCommandBuffer>							m_cmdBuffer;
@@ -498,15 +758,17 @@
 	std::ostringstream densityVertexGLSL;
 	densityVertexGLSL <<
 		"#version 450\n"
+		"#extension GL_EXT_multiview : enable\n"
 		"layout(location = 0) in  vec4 inPosition;\n"
-		"layout(location = 1) in  vec4 inColor;\n"
-		"layout(location = 0) out vec4 outColor;\n"
-		"layout(location = 1) out vec2 outUV;\n"
+		"layout(location = 1) in  vec4 inUV;\n"
+		"layout(location = 2) in  vec4 inColor;\n"
+		"layout(location = 0) out vec4 outUV;\n"
+		"layout(location = 1) out vec4 outColor;\n"
 		"void main(void)\n"
 		"{\n"
 		"	gl_Position = inPosition;\n"
+		"	outUV = inUV;\n"
 		"	outColor = inColor;\n"
-		"	outUV = 0.5 * inPosition.xy + vec2(0.5);\n"
 		"}\n";
 	sourceCollections.glslSources.add("densitymap_vert") << glu::VertexSource(densityVertexGLSL.str());
 
@@ -514,8 +776,9 @@
 	densityFragmentProduceGLSL <<
 		"#version 450\n"
 		"#extension GL_EXT_fragment_invocation_density : enable\n"
-		"layout(location = 0) in  vec4 inColor;\n"
-		"layout(location = 1) in  vec2 inUV;\n"
+		"#extension GL_EXT_multiview : enable\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
 		"layout(location = 0) out vec4 fragColor;\n"
 		"void main(void)\n"
 		"{\n"
@@ -523,18 +786,62 @@
 		"}\n";
 	sourceCollections.glslSources.add("densitymap_frag_produce") << glu::FragmentSource(densityFragmentProduceGLSL.str());
 
-	std::ostringstream densityFragmentOutputGLSL;
-	densityFragmentOutputGLSL <<
+	std::ostringstream densityFragmentCopyGLSL;
+	densityFragmentCopyGLSL <<
 		"#version 450\n"
-		"layout(location = 0) in vec4 inColor;\n"
-		"layout(location = 1) in vec2 inUV;\n"
+		"#extension GL_EXT_fragment_invocation_density : enable\n"
+		"#extension GL_EXT_multiview : enable\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
+		"layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInput inputAtt;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main(void)\n"
+		"{\n"
+		"	fragColor = subpassLoad(inputAtt);\n"
+		"}\n";
+	sourceCollections.glslSources.add("densitymap_frag_copy") << glu::FragmentSource(densityFragmentCopyGLSL.str());
+
+	std::ostringstream densityFragmentCopyMultisampledGLSL;
+	densityFragmentCopyMultisampledGLSL <<
+		"#version 450\n"
+		"#extension GL_EXT_fragment_invocation_density : enable\n"
+		"#extension GL_EXT_multiview : enable\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
+		"layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS inputAtt;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main(void)\n"
+		"{\n"
+		"	fragColor = subpassLoad(inputAtt, gl_SampleID);\n"
+		"}\n";
+	sourceCollections.glslSources.add("densitymap_frag_copy_ms") << glu::FragmentSource(densityFragmentCopyMultisampledGLSL.str());
+
+	std::ostringstream densityFragmentOutput2DGLSL;
+	densityFragmentOutput2DGLSL <<
+		"#version 450\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
 		"layout(binding = 0)  uniform sampler2D subsampledImage;\n"
 		"layout(location = 0) out vec4 fragColor;\n"
 		"void main(void)\n"
 		"{\n"
-		"	fragColor = texture(subsampledImage, inUV);\n"
+		"	fragColor = texture(subsampledImage, inUV.xy);\n"
 		"}\n";
-	sourceCollections.glslSources.add("densitymap_frag_output") << glu::FragmentSource(densityFragmentOutputGLSL.str());
+	sourceCollections.glslSources.add("densitymap_frag_output_2d") << glu::FragmentSource(densityFragmentOutput2DGLSL.str());
+
+	std::ostringstream densityFragmentOutput2DArrayGLSL;
+	densityFragmentOutput2DArrayGLSL <<
+		"#version 450\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
+		"layout(binding = 0)  uniform sampler2DArray subsampledImage;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main(void)\n"
+		"{\n"
+		"	fragColor = texture(subsampledImage, inUV.xyz);\n"
+		"}\n";
+	sourceCollections.glslSources.add("densitymap_frag_output_2darray") << glu::FragmentSource(densityFragmentOutput2DArrayGLSL.str());
+
 }
 
 TestInstance* FragmentDensityMapTest::createInstance(Context& context) const
@@ -544,6 +851,9 @@
 
 void FragmentDensityMapTest::checkSupport(Context& context) const
 {
+	const InstanceInterface&	vki					= context.getInstanceInterface();
+	const VkPhysicalDevice		vkPhysicalDevice	= context.getPhysicalDevice();
+
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
 	context.requireDeviceFunctionality("VK_EXT_fragment_density_map");
 
@@ -556,7 +866,7 @@
 	fragmentDensityMapFeatures.sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
 	features.pNext						= &fragmentDensityMapFeatures;
 
-	context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+	vki.getPhysicalDeviceFeatures2(vkPhysicalDevice, &features);
 
 	if (!fragmentDensityMapFeatures.fragmentDensityMap)
 		TCU_THROW(NotSupportedError, "fragmentDensityMap feature is not supported");
@@ -564,24 +874,39 @@
 		TCU_THROW(NotSupportedError, "fragmentDensityMapDynamic feature is not supported");
 	if (m_testParams.nonSubsampledImages && !fragmentDensityMapFeatures.fragmentDensityMapNonSubsampledImages)
 		TCU_THROW(NotSupportedError, "fragmentDensityMapNonSubsampledImages feature is not supported");
-#else
-	DE_UNREF(context);
 #endif
+	if (m_testParams.multiView)
+	{
+		context.requireDeviceFunctionality("VK_KHR_multiview");
+		const vk::VkPhysicalDeviceMultiviewFeatures& multiviewFeatures = context.getMultiviewFeatures();
+		if (!multiviewFeatures.multiview)
+			TCU_THROW(NotSupportedError, "Implementation does not support multiview feature");
+	}
+	{
+		vk::VkImageUsageFlags	colorImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+		if (m_testParams.makeCopy)
+			colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+#if !DRY_RUN_WITHOUT_FDM_EXTENSION
+		deUint32				colorImageCreateFlags			= m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
+#else
+		deUint32				colorImageCreateFlags			= 0u;
+#endif
+		VkImageFormatProperties	imageFormatProperties(getPhysicalDeviceImageFormatProperties(vki, vkPhysicalDevice, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, colorImageUsage, colorImageCreateFlags));
+		if ((imageFormatProperties.sampleCounts & m_testParams.colorSamples) == 0)
+			TCU_THROW(NotSupportedError, "Color image type not supported");
+	}
 }
 
 FragmentDensityMapTestInstance::FragmentDensityMapTestInstance(Context&			context,
 															const TestParams&	testParams)
 	: vkt::TestInstance	( context )
 	, m_testParams		( testParams )
-	, m_renderSize		( 32u, 32u )
-	, m_densityMapSize	( 16u, 16u )
-	, m_vertices		( createFullscreenQuadRG() )
-	, m_verticesDDM		( createFullscreenQuadDensity(1.0f / static_cast<float>(testParams.fragmentArea.x()), 1.0f / static_cast<float>(testParams.fragmentArea.y())) )
 {
 	const DeviceInterface&		vk						= m_context.getDeviceInterface();
 	const VkDevice				vkDevice				= m_context.getDevice();
+	const VkPhysicalDevice		vkPhysicalDevice		= m_context.getPhysicalDevice();
 	const deUint32				queueFamilyIndex		= m_context.getUniversalQueueFamilyIndex();
-	SimpleAllocator				memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+	SimpleAllocator				memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), vkPhysicalDevice));
 	const VkComponentMapping	componentMappingRGBA	= { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
 
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
@@ -594,7 +919,7 @@
 		m_fragmentDensityMapProperties.sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
 		properties.pNext						= &m_fragmentDensityMapProperties;
 
-		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+		context.getInstanceInterface().getPhysicalDeviceProperties2(vkPhysicalDevice, &properties);
 	}
 #else
 	{
@@ -609,209 +934,127 @@
 	}
 #endif
 
-	// Create density map image
-	{
+	// calculate all image sizes, image usage flags, view types etc.
+	VkExtent3D				densityMapImageSize				{ m_testParams.densityMapSize.x(), m_testParams.densityMapSize.y(), 1 };
+	deUint32				densityMapImageLayers			= m_testParams.multiView ? 2 : 1 ;
+	VkImageViewType			densityImageViewType			= m_testParams.multiView ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
-		vk::VkImageUsageFlags densityMapImageUsage = m_testParams.dynamicDensityMap ? VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT : VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT;
+	vk::VkImageUsageFlags	densityMapImageUsage			= m_testParams.dynamicDensityMap ? VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT : VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT;
 #else
-		vk::VkImageUsageFlags densityMapImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+	vk::VkImageUsageFlags	densityMapImageUsage			= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
 #endif
-		const VkImageCreateInfo	densityMapImageParams =
-		{
-			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,											// VkStructureType			sType;
-			DE_NULL,																		// const void*				pNext;
-			0u,																				// VkImageCreateFlags		flags;
-			VK_IMAGE_TYPE_2D,																// VkImageType				imageType;
-			m_testParams.densityMapFormat,													// VkFormat					format;
-			{ m_densityMapSize.x(), m_densityMapSize.y(), 1u },								// VkExtent3D				extent;
-			1u,																				// deUint32					mipLevels;
-			1u,																				// deUint32					arrayLayers;
-			VK_SAMPLE_COUNT_1_BIT,															// VkSampleCountFlagBits	samples;
-			VK_IMAGE_TILING_OPTIMAL,														// VkImageTiling			tiling;
-			densityMapImageUsage,															// VkImageUsageFlags		usage;
-			VK_SHARING_MODE_EXCLUSIVE,														// VkSharingMode			sharingMode;
-			1u,																				// deUint32					queueFamilyIndexCount;
-			&queueFamilyIndex,																// const deUint32*			pQueueFamilyIndices;
-			VK_IMAGE_LAYOUT_UNDEFINED														// VkImageLayout			initialLayout;
-		};
+	deUint32				densityMapImageViewCreateFlags	= m_testParams.dynamicDensityMap ? (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT : 0u;
 
-		m_densityMapImage = createImage(vk, vkDevice, &densityMapImageParams);
-
-		// Allocate and bind density map image memory
-		VkMemoryRequirements			memoryRequirements = getImageMemoryRequirements(vk, vkDevice, *m_densityMapImage);
-
-		m_densityMapImageAlloc = memAlloc.allocate(memoryRequirements, MemoryRequirement::Any);
-		VK_CHECK(vk.bindImageMemory(vkDevice, *m_densityMapImage, m_densityMapImageAlloc->getMemory(), m_densityMapImageAlloc->getOffset()));
-
-		// create and fill staging buffer, copy its data to density map image
+	VkExtent3D				colorMapImageSize				= m_testParams.multiView ?
+															  VkExtent3D{ m_testParams.renderSize.x() / 2, m_testParams.renderSize.y(), 1 } :
+															  VkExtent3D{ m_testParams.renderSize.x(), m_testParams.renderSize.y(), 1 };
+	deUint32				colorImageLayers				= m_testParams.multiView ? 2 : 1 ;
+	VkImageViewType			colorImageViewType				= m_testParams.multiView ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
+	vk::VkImageUsageFlags	colorImageUsage					= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+	if (m_testParams.makeCopy)
+		colorImageUsage  |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
-		tcu::TextureFormat	densityMapTextureFormat = vk::mapVkFormat(m_testParams.densityMapFormat);
-
-		if ( !m_testParams.dynamicDensityMap )
-		{
-			VkDeviceSize stagingBufferSize = tcu::getPixelSize(densityMapTextureFormat) * m_densityMapSize.x() * m_densityMapSize.y() * 1;
-			const vk::VkBufferCreateInfo	stagingBufferCreateInfo =
-			{
-				vk::VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
-				DE_NULL,
-				0u,									// flags
-				stagingBufferSize,					// size
-				VK_BUFFER_USAGE_TRANSFER_SRC_BIT,	// usage
-				vk::VK_SHARING_MODE_EXCLUSIVE,		// sharingMode
-				0u,									// queueFamilyCount
-				DE_NULL,							// pQueueFamilyIndices
-			};
-			vk::Move<vk::VkBuffer>			stagingBuffer		= vk::createBuffer(vk, vkDevice, &stagingBufferCreateInfo);
-			const vk::VkMemoryRequirements	stagingRequirements = vk::getBufferMemoryRequirements(vk, vkDevice, *stagingBuffer);
-			de::MovePtr<vk::Allocation>		stagingAllocation	= memAlloc.allocate(stagingRequirements, MemoryRequirement::HostVisible);
-			VK_CHECK(vk.bindBufferMemory(vkDevice, *stagingBuffer, stagingAllocation->getMemory(), stagingAllocation->getOffset()));
-			tcu::PixelBufferAccess			stagingBufferAccess	= tcu::PixelBufferAccess(densityMapTextureFormat, m_densityMapSize.x(), m_densityMapSize.y(), 1, stagingAllocation->getHostPtr());
-
-			tcu::Vec4 fragmentArea { 1.0f / static_cast<float>(testParams.fragmentArea.x()), 1.0f / static_cast<float>(testParams.fragmentArea.y()), 0.0f, 1.0f };
-			for (int y = 0; y < stagingBufferAccess.getHeight(); y++)
-				for (int x = 0; x < stagingBufferAccess.getWidth(); x++)
-					stagingBufferAccess.setPixel(fragmentArea, x, y);
-			flushAlloc(vk, vkDevice, *stagingAllocation);
-
-			std::vector<VkBufferImageCopy> copyRegions =
-			{
-				{
-					0,													// VkDeviceSize					bufferOffset
-					0,													// deUint32						bufferRowLength
-					0,													// deUint32						bufferImageHeight
-					{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 },				// VkImageSubresourceLayers		imageSubresource
-					{ 0, 0, 0 },										// VkOffset3D					imageOffset
-					{ m_densityMapSize.x(), m_densityMapSize.y(), 1u }	// VkExtent3D					imageExtent
-				}
-			};
-
-			vk::copyBufferToImage
-			(
-				vk,
-				vkDevice,
-				m_context.getUniversalQueue(),
-				queueFamilyIndex,
-				*stagingBuffer,
-				stagingBufferSize,
-				copyRegions,
-				DE_NULL,
-				VK_IMAGE_ASPECT_COLOR_BIT,
-				1,
-				1,
-				*m_densityMapImage,
-				VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
-				VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
-			);
-		}
+	deUint32				colorImageCreateFlags			= m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
+#else
+	deUint32				colorImageCreateFlags			= 0u;
 #endif
 
-		//create image view for fragment density map
-		deUint32 densityMapImageViewCreateFlags = m_testParams.dynamicDensityMap ? (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT : 0u;
-		const VkImageViewCreateInfo densityMapImageViewParams =
-		{
-			VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,							// VkStructureType			sType;
-			DE_NULL,															// const void*				pNext;
-			(VkImageViewCreateFlags)densityMapImageViewCreateFlags,				// VkImageViewCreateFlags	flags;
-			*m_densityMapImage,													// VkImage					image;
-			VK_IMAGE_VIEW_TYPE_2D,												// VkImageViewType			viewType;
-			m_testParams.densityMapFormat,										// VkFormat					format;
-			componentMappingRGBA,												// VkChannelMapping			channels;
-			{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }						// VkImageSubresourceRange	subresourceRange;
-		};
-
-		m_densityMapImageView = createImageView(vk, vkDevice, &densityMapImageViewParams);
-	}
+	VkExtent3D				outputMapImageSize				{ m_testParams.renderSize.x(), m_testParams.renderSize.y(), 1 };
 
 	// Create subsampled color image
+	prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
+		colorMapImageSize, colorImageLayers, m_testParams.colorSamples,
+		colorImageUsage, queueFamilyIndex, 0u, colorImageViewType,
+		componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
+		m_colorImage, m_colorImageAlloc, m_colorImageView);
+
+	// Create subsampled color image for resolve operation ( when multisampling is used )
+	if( m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
 	{
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	deUint32 colorImageCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
-#else
-	deUint32 colorImageCreateFlags = 0u;
-#endif
-		const VkImageCreateInfo	colorImageParams
-		{
-			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,								// VkStructureType			sType;
-			DE_NULL,															// const void*				pNext;
-			(VkImageCreateFlags)colorImageCreateFlags,							// VkImageCreateFlags		flags;
-			VK_IMAGE_TYPE_2D,													// VkImageType				imageType;
-			VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat					format;
-			{ m_renderSize.x(), m_renderSize.y(), 1u },							// VkExtent3D				extent;
-			1u,																	// deUint32					mipLevels;
-			1u,																	// deUint32					arrayLayers;
-			VK_SAMPLE_COUNT_1_BIT,												// VkSampleCountFlagBits	samples;
-			VK_IMAGE_TILING_OPTIMAL,											// VkImageTiling			tiling;
-			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,	// VkImageUsageFlags		usage;
-			VK_SHARING_MODE_EXCLUSIVE,											// VkSharingMode			sharingMode;
-			1u,																	// deUint32					queueFamilyIndexCount;
-			&queueFamilyIndex,													// const deUint32*			pQueueFamilyIndices;
-			VK_IMAGE_LAYOUT_UNDEFINED											// VkImageLayout			initialLayout;
-		};
+		prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
+			colorMapImageSize, colorImageLayers, VK_SAMPLE_COUNT_1_BIT,
+			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, queueFamilyIndex, 0u, colorImageViewType,
+			componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
+			m_colorResolvedImage, m_colorResolvedImageAlloc, m_colorResolvedImageView);
+	}
 
-		m_colorImage			= createImage(vk, vkDevice, &colorImageParams);
-
-		// Allocate and bind color image memory
-		m_colorImageAlloc		= memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *m_colorImage), MemoryRequirement::Any);
-		VK_CHECK(vk.bindImageMemory(vkDevice, *m_colorImage, m_colorImageAlloc->getMemory(), m_colorImageAlloc->getOffset()));
-
-		// create image view for subsampled image
-		const VkImageViewCreateInfo colorImageViewParams =
-		{
-			VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,			// VkStructureType			sType;
-			DE_NULL,											// const void*				pNext;
-			0u,													// VkImageViewCreateFlags	flags;
-			*m_colorImage,										// VkImage					image;
-			VK_IMAGE_VIEW_TYPE_2D,								// VkImageViewType			viewType;
-			VK_FORMAT_R8G8B8A8_UNORM,							// VkFormat					format;
-			componentMappingRGBA,								// VkChannelMapping			channels;
-			{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }		// VkImageSubresourceRange	subresourceRange;
-		};
-
-		m_colorImageView = createImageView(vk, vkDevice, &colorImageViewParams);
+	// create subsampled image copy
+	if (m_testParams.makeCopy)
+	{
+		prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
+			colorMapImageSize, colorImageLayers, m_testParams.colorSamples,
+			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, queueFamilyIndex, 0u, colorImageViewType,
+			componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
+			m_colorCopyImage, m_colorCopyImageAlloc, m_colorCopyImageView);
 	}
 
 	// Create output image ( data from subsampled color image will be copied into it using sampler with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT )
+	prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, VK_FORMAT_R8G8B8A8_UNORM,
+		outputMapImageSize, 1u, VK_SAMPLE_COUNT_1_BIT,
+		VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT, queueFamilyIndex, 0u, VK_IMAGE_VIEW_TYPE_2D,
+		componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u },
+		m_outputImage, m_outputImageAlloc, m_outputImageView);
+
+	// Create density map image
+	prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, m_testParams.densityMapFormat,
+		densityMapImageSize, densityMapImageLayers, VK_SAMPLE_COUNT_1_BIT,
+		densityMapImageUsage, queueFamilyIndex, densityMapImageViewCreateFlags, densityImageViewType,
+		componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, densityMapImageLayers },
+		m_densityMapImage, m_densityMapImageAlloc, m_densityMapImageView);
+
+	// create and fill staging buffer, copy its data to density map image
+#if !DRY_RUN_WITHOUT_FDM_EXTENSION
+	if ( !m_testParams.dynamicDensityMap )
 	{
-		const VkImageCreateInfo	outputImageParams =
+		tcu::TextureFormat				densityMapTextureFormat	= vk::mapVkFormat(m_testParams.densityMapFormat);
+		VkDeviceSize					stagingBufferSize		= tcu::getPixelSize(densityMapTextureFormat) * densityMapImageSize.width * densityMapImageSize.height * densityMapImageLayers;
+		const vk::VkBufferCreateInfo	stagingBufferCreateInfo =
 		{
-			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,									// VkStructureType			sType;
-			DE_NULL,																// const void*				pNext;
-			0u,																		// VkImageCreateFlags		flags;
-			VK_IMAGE_TYPE_2D,														// VkImageType				imageType;
-			VK_FORMAT_R8G8B8A8_UNORM,												// VkFormat					format;
-			{ m_renderSize.x(), m_renderSize.y(), 1u },								// VkExtent3D				extent;
-			1u,																		// deUint32					mipLevels;
-			1u,																		// deUint32					arrayLayers;
-			VK_SAMPLE_COUNT_1_BIT,													// VkSampleCountFlagBits	samples;
-			VK_IMAGE_TILING_OPTIMAL,												// VkImageTiling			tiling;
-			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT,	// VkImageUsageFlags		usage;
-			VK_SHARING_MODE_EXCLUSIVE,												// VkSharingMode			sharingMode;
-			1u,																		// deUint32					queueFamilyIndexCount;
-			&queueFamilyIndex,														// const deUint32*			pQueueFamilyIndices;
-			VK_IMAGE_LAYOUT_UNDEFINED												// VkImageLayout			initialLayout;
+			vk::VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
+			DE_NULL,
+			0u,									// flags
+			stagingBufferSize,					// size
+			VK_BUFFER_USAGE_TRANSFER_SRC_BIT,	// usage
+			vk::VK_SHARING_MODE_EXCLUSIVE,		// sharingMode
+			0u,									// queueFamilyCount
+			DE_NULL,							// pQueueFamilyIndices
+		};
+		vk::Move<vk::VkBuffer>			stagingBuffer		= vk::createBuffer(vk, vkDevice, &stagingBufferCreateInfo);
+		const vk::VkMemoryRequirements	stagingRequirements = vk::getBufferMemoryRequirements(vk, vkDevice, *stagingBuffer);
+		de::MovePtr<vk::Allocation>		stagingAllocation	= memAlloc.allocate(stagingRequirements, MemoryRequirement::HostVisible);
+		VK_CHECK(vk.bindBufferMemory(vkDevice, *stagingBuffer, stagingAllocation->getMemory(), stagingAllocation->getOffset()));
+		tcu::PixelBufferAccess			stagingBufferAccess	= tcu::PixelBufferAccess(densityMapTextureFormat, densityMapImageSize.width, densityMapImageSize.height, densityMapImageLayers, stagingAllocation->getHostPtr());
+
+		tcu::Vec4 fragmentArea { 1.0f / static_cast<float>(testParams.fragmentArea.x()), 1.0f / static_cast<float>(testParams.fragmentArea.y()), 0.0f, 1.0f };
+		for (int z = 0; z < stagingBufferAccess.getDepth(); z++)
+			for (int y = 0; y < stagingBufferAccess.getHeight(); y++)
+				for (int x = 0; x < stagingBufferAccess.getWidth(); x++)
+					stagingBufferAccess.setPixel(fragmentArea, x, y, z);
+		flushAlloc(vk, vkDevice, *stagingAllocation);
+
+		std::vector<VkBufferImageCopy> copyRegions =
+		{
+			{
+				0,															// VkDeviceSize					bufferOffset
+				0,															// deUint32						bufferRowLength
+				0,															// deUint32						bufferImageHeight
+				{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, densityMapImageLayers },	// VkImageSubresourceLayers		imageSubresource
+				{ 0, 0, 0 },												// VkOffset3D					imageOffset
+				densityMapImageSize											// VkExtent3D					imageExtent
+			}
 		};
 
-		m_outputImage = createImage(vk, vkDevice, &outputImageParams);
-
-		// Allocate and bind input image memory
-		m_outputImageAlloc = memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *m_outputImage), MemoryRequirement::Any);
-		VK_CHECK(vk.bindImageMemory(vkDevice, *m_outputImage, m_outputImageAlloc->getMemory(), m_outputImageAlloc->getOffset()));
-
-		// create image view for output image
-		const VkImageViewCreateInfo outputImageViewParams =
-		{
-			VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,		// VkStructureType			sType;
-			DE_NULL,										// const void*				pNext;
-			0u,												// VkImageViewCreateFlags	flags;
-			*m_outputImage,									// VkImage					image;
-			VK_IMAGE_VIEW_TYPE_2D,							// VkImageViewType			viewType;
-			VK_FORMAT_R8G8B8A8_UNORM,						// VkFormat					format;
-			componentMappingRGBA,							// VkChannelMapping			channels;
-			{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }	// VkImageSubresourceRange	subresourceRange;
-		};
-
-		m_outputImageView = createImageView(vk, vkDevice, &outputImageViewParams);
+		vk::copyBufferToImage
+		(
+			vk, vkDevice, m_context.getUniversalQueue(), queueFamilyIndex,
+			*stagingBuffer, stagingBufferSize, copyRegions, DE_NULL,
+			VK_IMAGE_ASPECT_COLOR_BIT, 1, densityMapImageLayers,
+			*m_densityMapImage,
+			VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
+			VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
+		);
 	}
+#endif
 
 	// create a sampler that is able to read from subsampled image
 	{
@@ -856,15 +1099,22 @@
 #if  !DRY_RUN_WITHOUT_FDM_EXTENSION
 	if ( testParams.dynamicDensityMap )
 #endif
-		m_framebufferProduceDynamicDensityMap = createFrameBuffer(vk, vkDevice, *m_renderPassProduceDynamicDensityMap, m_densityMapSize, { *m_densityMapImageView });
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice, *m_renderPassProduceSubsampledImage, m_renderSize, { *m_colorImageView, *m_densityMapImageView });
-#else
-	m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice, *m_renderPassProduceSubsampledImage, m_renderSize, { *m_colorImageView });
-#endif
-	m_framebufferOutputSubsampledImage	= createFrameBuffer( vk, vkDevice, *m_renderPassOutputSubsampledImage, m_renderSize, { *m_outputImageView } );
+		m_framebufferProduceDynamicDensityMap = createFrameBuffer(vk, vkDevice, *m_renderPassProduceDynamicDensityMap, densityMapImageSize.width, densityMapImageSize.height, { *m_densityMapImageView });
 
-	// Create pipeline layout for first two render passes that do not use any descriptors
+	std::vector<VkImageView> imageViewsProduceSubsampledImage;
+	imageViewsProduceSubsampledImage.push_back(*m_colorImageView);
+	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+		imageViewsProduceSubsampledImage.push_back(*m_colorResolvedImageView);
+	if (testParams.makeCopy)
+		imageViewsProduceSubsampledImage.push_back(*m_colorCopyImageView);
+#if !DRY_RUN_WITHOUT_FDM_EXTENSION
+	imageViewsProduceSubsampledImage.push_back(*m_densityMapImageView);
+#endif
+	m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice, *m_renderPassProduceSubsampledImage, colorMapImageSize.width, colorMapImageSize.height, imageViewsProduceSubsampledImage);
+
+	m_framebufferOutputSubsampledImage	= createFrameBuffer( vk, vkDevice, *m_renderPassOutputSubsampledImage, outputMapImageSize.width, outputMapImageSize.height, { *m_outputImageView } );
+
+	// Create pipeline layout for subpasses that do not use any descriptors
 	{
 		const VkPipelineLayoutCreateInfo		pipelineLayoutParams		=
 		{
@@ -877,105 +1127,82 @@
 			DE_NULL											// const VkPushConstantRange*	pPushConstantRanges;
 		};
 
-		m_pipelineLayoutProduceSubsampledImage = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
+		m_pipelineLayoutNoDescriptors = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
+	}
+
+	// Create pipeline layout for subpass that copies data
+	if(m_testParams.makeCopy)
+	{
+		m_descriptorSetLayoutCopySubsampledImage =
+			DescriptorSetLayoutBuilder()
+			.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, DE_NULL)
+			.build(vk, vkDevice);
+
+		// Create and bind descriptor set
+		m_descriptorPoolCopySubsampledImage =
+			DescriptorPoolBuilder()
+			.addType(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1u)
+			.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+		m_pipelineLayoutCopySubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutCopySubsampledImage);
+
+		m_descriptorSetCopySubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolCopySubsampledImage, *m_descriptorSetLayoutCopySubsampledImage);
+
+		const VkDescriptorImageInfo			inputImageInfo =
+		{
+			DE_NULL,											// VkSampleri		sampler;
+			*m_colorImageView,									// VkImageView		imageView;
+			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL			// VkImageLayout	imageLayout;
+		};
+		DescriptorSetUpdateBuilder()
+			.writeSingle(*m_descriptorSetCopySubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &inputImageInfo)
+			.update(vk, vkDevice);
 	}
 
 	// Create pipeline layout for last render pass ( output subsampled image )
 	{
-		std::vector<VkDescriptorSetLayoutBinding>	descriptorSetLayoutBindings =
-		{
-			{
-				0,											// deUint32				binding;
-				VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,	// VkDescriptorType		descriptorType;
-				1,											// deUint32				descriptorCount;
-				VK_SHADER_STAGE_FRAGMENT_BIT,				// VkShaderStageFlags	stageFlags;
-				&(m_colorSampler.get())						// const VkSampler*		pImmutableSamplers;
-			},
-		};
+		m_descriptorSetLayoutOutputSubsampledImage =
+			DescriptorSetLayoutBuilder()
+			.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, &(m_colorSampler.get()))
+			.build(vk, vkDevice);
 
-		const VkDescriptorSetLayoutCreateInfo		descriptorSetLayoutParams	=
-		{
-			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,		// VkStructureType						sType
-			DE_NULL,													// const void*							pNext
-			0u,															// VkDescriptorSetLayoutCreateFlags		flags
-			static_cast<deUint32>(descriptorSetLayoutBindings.size()),	// deUint32								bindingCount
-			descriptorSetLayoutBindings.data()							// const VkDescriptorSetLayoutBinding*	pBindings
-		};
-		m_descriptorSetLayoutOutputSubsampledImage = createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutParams);
+		// Create and bind descriptor set
+		m_descriptorPoolOutputSubsampledImage =
+			DescriptorPoolBuilder()
+			.addType(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1u)
+			.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
 
-		const VkPipelineLayoutCreateInfo		pipelineLayoutParams		=
+		m_pipelineLayoutOutputSubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOutputSubsampledImage);
+
+		m_descriptorSetOutputSubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOutputSubsampledImage, *m_descriptorSetLayoutOutputSubsampledImage);
+
+		VkImageView srcImageView = (m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT) ? *m_colorResolvedImageView : ((m_testParams.makeCopy) ? *m_colorCopyImageView : *m_colorImageView);
+		const VkDescriptorImageInfo			inputImageInfo =
 		{
-			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,		// VkStructureType				sType;
-			DE_NULL,											// const void*					pNext;
-			0u,													// VkPipelineLayoutCreateFlags	flags;
-			1u,													// deUint32						setLayoutCount;
-			&m_descriptorSetLayoutOutputSubsampledImage.get(),	// const VkDescriptorSetLayout*	pSetLayouts;
-			0u,													// deUint32						pushConstantRangeCount;
-			DE_NULL												// const VkPushConstantRange*	pPushConstantRanges;
+			DE_NULL,									// VkSampleri		sampler;
+			srcImageView,								// VkImageView		imageView;
+			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL	// VkImageLayout	imageLayout;
 		};
-		m_pipelineLayoutOutputSubsampledImage = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
+		DescriptorSetUpdateBuilder()
+			.writeSingle(*m_descriptorSetOutputSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &inputImageInfo)
+			.update(vk, vkDevice);
 	}
 
-	// Update descriptor set
+	// load vertex and fragment shaders
+
+	m_vertexCommonShaderModule							= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_vert"), 0);
+	m_fragmentShaderModuleProduceSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_produce"), 0);
+	if (m_testParams.makeCopy)
 	{
-		{
-			std::vector<VkDescriptorPoolSize> poolSizes =
-			{
-				{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1u }
-			};
-
-			const VkDescriptorPoolCreateInfo	descriptorPoolCreateInfo =
-			{
-				VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,		// VkStructureType				sType
-				DE_NULL,											// const void*					pNext
-				VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,	// VkDescriptorPoolCreateFlags	flags
-				1u,													// deUint32						maxSets
-				static_cast<deUint32>(poolSizes.size()),			// deUint32						poolSizeCount
-				poolSizes.data()									// const VkDescriptorPoolSize*	pPoolSizes
-			};
-			m_descriptorPoolOutputSubsampledImage = createDescriptorPool(vk, vkDevice, &descriptorPoolCreateInfo);
-		}
-
-		{
-			const VkDescriptorSetAllocateInfo	descriptorSetAllocateInfo =
-			{
-				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,		// VkStructureType				sType
-				DE_NULL,											// const void*					pNext
-				*m_descriptorPoolOutputSubsampledImage,				// VkDescriptorPool				descriptorPool
-				1u,													// deUint32						descriptorSetCount
-				&m_descriptorSetLayoutOutputSubsampledImage.get(),	// const VkDescriptorSetLayout*	pSetLayouts
-			};
-			m_descriptorSetOutputSubsampledImage = allocateDescriptorSet(vk, vkDevice, &descriptorSetAllocateInfo);
-
-			const VkDescriptorImageInfo			inputImageInfo =
-			{
-				DE_NULL,											// VkSampleri		sampler;
-				*m_colorImageView,									// VkImageView		imageView;
-				VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL			// VkImageLayout	imageLayout;
-			};
-
-			std::vector<VkWriteDescriptorSet>	descriptorWrite =
-			{
-				{
-					VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,			// VkStructureType					sType;
-					DE_NULL,										// const void*						pNext;
-					*m_descriptorSetOutputSubsampledImage,			// VkDescriptorSet					dstSet;
-					0u,												// deUint32							dstBinding;
-					0u,												// deUint32							dstArrayElement;
-					1u,												// deUint32							descriptorCount;
-					VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,		// VkDescriptorType					descriptorType;
-					&inputImageInfo,								// const VkDescriptorImageInfo*		pImageInfo;
-					DE_NULL,										// const VkDescriptorBufferInfo*	pBufferInfo;
-					DE_NULL											// const VkBufferView*				pTexelBufferView;
-				}
-			};
-			vk.updateDescriptorSets(vkDevice, static_cast<deUint32>(descriptorWrite.size()), descriptorWrite.data(), 0u, DE_NULL);
-		}
+		if (m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+			m_fragmentShaderModuleCopySubsampledImage	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_copy_ms"), 0);
+		else
+			m_fragmentShaderModuleCopySubsampledImage	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_copy"), 0);
 	}
-
-	m_vertexCommonShaderModule						= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_vert"), 0);
-	m_fragmentShaderModuleProduceSubsampledImage	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_produce"), 0);
-	m_fragmentShaderModuleOutputSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output"), 0);
+	if( m_testParams.multiView)
+		m_fragmentShaderModuleOutputSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output_2darray"), 0);
+	else
+		m_fragmentShaderModuleOutputSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output_2d"), 0);
 
 	// Create pipelines
 	{
@@ -989,7 +1216,8 @@
 		std::vector<VkVertexInputAttributeDescription>	vertexInputAttributeDescriptions	=
 		{
 			{ 0u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, 0u },
-			{ 1u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 4) }
+			{ 1u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 4) },
+			{ 2u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 8) }
 		};
 
 		const VkPipelineVertexInputStateCreateInfo	vertexInputStateParams				=
@@ -1003,69 +1231,112 @@
 			vertexInputAttributeDescriptions.data()							// const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
 		};
 
-		const std::vector<VkViewport>				viewportsDDM						{ makeViewport(m_densityMapSize) };
-		const std::vector<VkRect2D>					scissorsDDM							{ makeRect2D(m_densityMapSize) };
-		const std::vector<VkViewport>				viewports							{ makeViewport(m_renderSize) };
-		const std::vector<VkRect2D>					scissors							{ makeRect2D(m_renderSize) };
+		const VkPipelineMultisampleStateCreateInfo		multisampleStateCreateInfo =
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	// VkStructureType							sType
+			DE_NULL,													// const void*								pNext
+			(VkPipelineMultisampleStateCreateFlags)0u,					// VkPipelineMultisampleStateCreateFlags	flags
+			(VkSampleCountFlagBits)m_testParams.colorSamples,			// VkSampleCountFlagBits					rasterizationSamples
+			VK_FALSE,													// VkBool32									sampleShadingEnable
+			1.0f,														// float									minSampleShading
+			DE_NULL,													// const VkSampleMask*						pSampleMask
+			VK_FALSE,													// VkBool32									alphaToCoverageEnable
+			VK_FALSE													// VkBool32									alphaToOneEnable
+		};
+
+		const std::vector<VkViewport>				viewportsProduceDynamicDensityMap	{ makeViewport(densityMapImageSize.width, densityMapImageSize.height) };
+		const std::vector<VkRect2D>					scissorsProduceDynamicDensityMap	{ makeRect2D(densityMapImageSize.width, densityMapImageSize.height) };
+		const std::vector<VkViewport>				viewportsProduceSubsampledImage		{ makeViewport(colorMapImageSize.width, colorMapImageSize.height) };
+		const std::vector<VkRect2D>					scissorsProduceSubsampledImage		{ makeRect2D(colorMapImageSize.width, colorMapImageSize.height) };
+		const std::vector<VkViewport>				viewportsCopySubsampledImage		{ makeViewport(colorMapImageSize.width, colorMapImageSize.height) };
+		const std::vector<VkRect2D>					scissorsCopySubsampledImage			{ makeRect2D(colorMapImageSize.width, colorMapImageSize.height) };
+		const std::vector<VkViewport>				viewportsOutputSubsampledImage		{ makeViewport(outputMapImageSize.width, outputMapImageSize.height) };
+		const std::vector<VkRect2D>					scissorsOutputSubsampledImage		{ makeRect2D(outputMapImageSize.width, outputMapImageSize.height) };
 
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
 		if (testParams.dynamicDensityMap)
 #endif
-			m_graphicsPipelineProduceDynamicDensityMap = makeGraphicsPipeline(vk,							// const DeviceInterface&						vk
-															vkDevice,										// const VkDevice								device
-															*m_pipelineLayoutProduceSubsampledImage,		// const VkPipelineLayout						pipelineLayout
-															*m_vertexCommonShaderModule,					// const VkShaderModule							vertexShaderModule
-															DE_NULL,										// const VkShaderModule							tessellationControlModule
-															DE_NULL,										// const VkShaderModule							tessellationEvalModule
-															DE_NULL,										// const VkShaderModule							geometryShaderModule
-															*m_fragmentShaderModuleProduceSubsampledImage,	// const VkShaderModule							fragmentShaderModule
-															*m_renderPassProduceDynamicDensityMap,			// const VkRenderPass							renderPass
-															viewportsDDM,									// const std::vector<VkViewport>&				viewports
-															scissorsDDM,									// const std::vector<VkRect2D>&					scissors
-															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology					topology
-															0u,												// const deUint32								subpass
-															0u,												// const deUint32								patchControlPoints
-															&vertexInputStateParams);						// const VkPipelineVertexInputStateCreateInfo*	vertexInputStateCreateInfo
+			m_graphicsPipelineProduceDynamicDensityMap = makeGraphicsPipeline(vk,							// const DeviceInterface&							vk
+															vkDevice,										// const VkDevice									device
+															*m_pipelineLayoutNoDescriptors,					// const VkPipelineLayout							pipelineLayout
+															*m_vertexCommonShaderModule,					// const VkShaderModule								vertexShaderModule
+															DE_NULL,										// const VkShaderModule								tessellationControlModule
+															DE_NULL,										// const VkShaderModule								tessellationEvalModule
+															DE_NULL,										// const VkShaderModule								geometryShaderModule
+															*m_fragmentShaderModuleProduceSubsampledImage,	// const VkShaderModule								fragmentShaderModule
+															*m_renderPassProduceDynamicDensityMap,			// const VkRenderPass								renderPass
+															viewportsProduceDynamicDensityMap,				// const std::vector<VkViewport>&					viewports
+															scissorsProduceDynamicDensityMap,				// const std::vector<VkRect2D>&						scissors
+															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
+															0u,												// const deUint32									subpass
+															0u,												// const deUint32									patchControlPoints
+															&vertexInputStateParams);						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
 
-		m_graphicsPipelineProduceSubsampledImage = makeGraphicsPipeline(vk,									// const DeviceInterface&						vk
-															vkDevice,										// const VkDevice								device
-															*m_pipelineLayoutProduceSubsampledImage,		// const VkPipelineLayout						pipelineLayout
-															*m_vertexCommonShaderModule,					// const VkShaderModule							vertexShaderModule
-															DE_NULL,										// const VkShaderModule							tessellationControlModule
-															DE_NULL,										// const VkShaderModule							tessellationEvalModule
-															DE_NULL,										// const VkShaderModule							geometryShaderModule
-															*m_fragmentShaderModuleProduceSubsampledImage,	// const VkShaderModule							fragmentShaderModule
-															*m_renderPassProduceSubsampledImage,			// const VkRenderPass							renderPass
-															viewports,										// const std::vector<VkViewport>&				viewports
-															scissors,										// const std::vector<VkRect2D>&					scissors
-															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology					topology
-															0u,												// const deUint32								subpass
-															0u,												// const deUint32								patchControlPoints
-															&vertexInputStateParams);						// const VkPipelineVertexInputStateCreateInfo*	vertexInputStateCreateInfo
+		m_graphicsPipelineProduceSubsampledImage = makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
+															vkDevice,										// const VkDevice									device
+															*m_pipelineLayoutNoDescriptors,					// const VkPipelineLayout							pipelineLayout
+															*m_vertexCommonShaderModule,					// const VkShaderModule								vertexShaderModule
+															DE_NULL,										// const VkShaderModule								tessellationControlModule
+															DE_NULL,										// const VkShaderModule								tessellationEvalModule
+															DE_NULL,										// const VkShaderModule								geometryShaderModule
+															*m_fragmentShaderModuleProduceSubsampledImage,	// const VkShaderModule								fragmentShaderModule
+															*m_renderPassProduceSubsampledImage,			// const VkRenderPass								renderPass
+															viewportsProduceSubsampledImage,				// const std::vector<VkViewport>&					viewports
+															scissorsProduceSubsampledImage,					// const std::vector<VkRect2D>&						scissors
+															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
+															0u,												// const deUint32									subpass
+															0u,												// const deUint32									patchControlPoints
+															&vertexInputStateParams,						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo,
+															&multisampleStateCreateInfo);					// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
 
-		m_graphicsPipelineOutputSubsampledImage = makeGraphicsPipeline(vk,									// const DeviceInterface&						vk
-															vkDevice,										// const VkDevice								device
-															*m_pipelineLayoutOutputSubsampledImage,			// const VkPipelineLayout						pipelineLayout
-															*m_vertexCommonShaderModule,					// const VkShaderModule							vertexShaderModule
-															DE_NULL,										// const VkShaderModule							tessellationControlModule
-															DE_NULL,										// const VkShaderModule							tessellationEvalModule
-															DE_NULL,										// const VkShaderModule							geometryShaderModule
-															*m_fragmentShaderModuleOutputSubsampledImage,	// const VkShaderModule							fragmentShaderModule
-															*m_renderPassOutputSubsampledImage,				// const VkRenderPass							renderPass
-															viewports,										// const std::vector<VkViewport>&				viewports
-															scissors,										// const std::vector<VkRect2D>&					scissors
-															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology					topology
-															0u,												// const deUint32								subpass
-															0u,												// const deUint32								patchControlPoints
-															&vertexInputStateParams);						// const VkPipelineVertexInputStateCreateInfo*	vertexInputStateCreateInfo
+		if(m_testParams.makeCopy)
+			m_graphicsPipelineCopySubsampledImage =		makeGraphicsPipeline(vk,							// const DeviceInterface&							vk
+															vkDevice,										// const VkDevice									device
+															*m_pipelineLayoutCopySubsampledImage,			// const VkPipelineLayout							pipelineLayout
+															*m_vertexCommonShaderModule,					// const VkShaderModule								vertexShaderModule
+															DE_NULL,										// const VkShaderModule								tessellationControlModule
+															DE_NULL,										// const VkShaderModule								tessellationEvalModule
+															DE_NULL,										// const VkShaderModule								geometryShaderModule
+															*m_fragmentShaderModuleCopySubsampledImage,		// const VkShaderModule								fragmentShaderModule
+															*m_renderPassProduceSubsampledImage,			// const VkRenderPass								renderPass
+															viewportsProduceSubsampledImage,				// const std::vector<VkViewport>&					viewports
+															scissorsProduceSubsampledImage,					// const std::vector<VkRect2D>&						scissors
+															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
+															1u,												// const deUint32									subpass
+															0u,												// const deUint32									patchControlPoints
+															&vertexInputStateParams,						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo,
+															&multisampleStateCreateInfo);					// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
+
+		m_graphicsPipelineOutputSubsampledImage = makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
+															vkDevice,										// const VkDevice									device
+															*m_pipelineLayoutOutputSubsampledImage,			// const VkPipelineLayout							pipelineLayout
+															*m_vertexCommonShaderModule,					// const VkShaderModule								vertexShaderModule
+															DE_NULL,										// const VkShaderModule								tessellationControlModule
+															DE_NULL,										// const VkShaderModule								tessellationEvalModule
+															DE_NULL,										// const VkShaderModule								geometryShaderModule
+															*m_fragmentShaderModuleOutputSubsampledImage,	// const VkShaderModule								fragmentShaderModule
+															*m_renderPassOutputSubsampledImage,				// const VkRenderPass								renderPass
+															viewportsOutputSubsampledImage,					// const std::vector<VkViewport>&					viewports
+															scissorsOutputSubsampledImage,					// const std::vector<VkRect2D>&						scissors
+															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
+															0u,												// const deUint32									subpass
+															0u,												// const deUint32									patchControlPoints
+															&vertexInputStateParams);						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
 	}
 
 	// Create vertex buffers
+	m_vertices			= createFullscreenQuadRG();
+	m_verticesDDM		= createFullscreenQuadDensity(1.0f / static_cast<float>(m_testParams.fragmentArea.x()), 1.0f / static_cast<float>(m_testParams.fragmentArea.y()));
+	m_verticesOutput	= createFullscreenMeshOutput(m_testParams.multiView);
+
+	createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_vertices, m_vertexBuffer, m_vertexBufferAlloc);
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
 	if (testParams.dynamicDensityMap)
 #endif
 		createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_verticesDDM, m_vertexBufferDDM, m_vertexBufferAllocDDM);
-	createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_vertices, m_vertexBuffer, m_vertexBufferAlloc);
+	createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_verticesOutput, m_vertexBufferOutput, m_vertexBufferOutputAlloc);
 
 	// Create command pool and command buffer
 	m_cmdPool	= createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
@@ -1076,6 +1347,10 @@
 	const						VkDeviceSize							vertexBufferOffset = 0;
 	std::vector<VkClearValue>	attachmentClearValuesDDM				= { makeClearValueColorF32(1.0f, 1.0f, 1.0f, 1.0f) };
 	std::vector<VkClearValue>	attachmentClearValues					= { makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f) };
+	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+		attachmentClearValues.push_back(makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f));
+	if (testParams.makeCopy)
+		attachmentClearValues.push_back(makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f));
 
 	beginCommandBuffer(vk, *m_cmdBuffer, 0u);
 
@@ -1086,13 +1361,13 @@
 	{
 		const VkRenderPassBeginInfo renderPassBeginInfoProduceDynamicDensityMap =
 		{
-			VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,				// VkStructureType		sType;
-			DE_NULL,												// const void*			pNext;
-			*m_renderPassProduceDynamicDensityMap,					// VkRenderPass			renderPass;
-			*m_framebufferProduceDynamicDensityMap,					// VkFramebuffer		framebuffer;
-			makeRect2D(m_densityMapSize),							// VkRect2D				renderArea;
-			static_cast<deUint32>(attachmentClearValuesDDM.size()),	// uint32_t				clearValueCount;
-			attachmentClearValuesDDM.data()							// const VkClearValue*	pClearValues;
+			VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,							// VkStructureType		sType;
+			DE_NULL,															// const void*			pNext;
+			*m_renderPassProduceDynamicDensityMap,								// VkRenderPass			renderPass;
+			*m_framebufferProduceDynamicDensityMap,								// VkFramebuffer		framebuffer;
+			makeRect2D(densityMapImageSize.width, densityMapImageSize.height),	// VkRect2D				renderArea;
+			static_cast<deUint32>(attachmentClearValuesDDM.size()),				// uint32_t				clearValueCount;
+			attachmentClearValuesDDM.data()										// const VkClearValue*	pClearValues;
 		};
 		RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceDynamicDensityMap, &subpassBeginInfo);
 		vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineProduceDynamicDensityMap);
@@ -1104,35 +1379,45 @@
 	// render subsampled image
 	const VkRenderPassBeginInfo renderPassBeginInfoProduceSubsampledImage =
 	{
-		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,				// VkStructureType		sType;
-		DE_NULL,												// const void*			pNext;
-		*m_renderPassProduceSubsampledImage,					// VkRenderPass			renderPass;
-		*m_framebufferProduceSubsampledImage,					// VkFramebuffer		framebuffer;
-		makeRect2D(m_renderSize),								// VkRect2D				renderArea;
-		static_cast<deUint32>(attachmentClearValues.size()),	// uint32_t				clearValueCount;
-		attachmentClearValues.data()							// const VkClearValue*	pClearValues;
+		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,						// VkStructureType		sType;
+		DE_NULL,														// const void*			pNext;
+		*m_renderPassProduceSubsampledImage,							// VkRenderPass			renderPass;
+		*m_framebufferProduceSubsampledImage,							// VkFramebuffer		framebuffer;
+		makeRect2D(colorMapImageSize.width, colorMapImageSize.height),	// VkRect2D				renderArea;
+		static_cast<deUint32>(attachmentClearValues.size()),			// uint32_t				clearValueCount;
+		attachmentClearValues.data()									// const VkClearValue*	pClearValues;
 	};
+
 	RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceSubsampledImage, &subpassBeginInfo);
 	vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineProduceSubsampledImage);
 	vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
 	vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
+	if (testParams.makeCopy)
+	{
+		RenderpassSubpass2::cmdNextSubpass(vk, *m_cmdBuffer, &subpassBeginInfo, &subpassEndInfo);
+		vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineCopySubsampledImage);
+		vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutCopySubsampledImage, 0, 1, &m_descriptorSetCopySubsampledImage.get(), 0, DE_NULL);
+		vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
+		vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
+	}
 	RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
 
 	// copy subsampled image to ordinary image using sampler that is able to read from subsampled images( subsampled image cannot be copied using vkCmdCopyImageToBuffer )
 	const VkRenderPassBeginInfo renderPassBeginInfoOutputSubsampledImage =
 	{
-		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,				// VkStructureType		sType;
-		DE_NULL,												// const void*			pNext;
-		*m_renderPassOutputSubsampledImage,						// VkRenderPass			renderPass;
-		*m_framebufferOutputSubsampledImage,					// VkFramebuffer		framebuffer;
-		makeRect2D(m_renderSize),								// VkRect2D				renderArea;
-		static_cast<deUint32>(attachmentClearValues.size()),	// uint32_t				clearValueCount;
-		attachmentClearValues.data()							// const VkClearValue*	pClearValues;
+		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,							// VkStructureType		sType;
+		DE_NULL,															// const void*			pNext;
+		*m_renderPassOutputSubsampledImage,									// VkRenderPass			renderPass;
+		*m_framebufferOutputSubsampledImage,								// VkFramebuffer		framebuffer;
+		makeRect2D(outputMapImageSize.width, outputMapImageSize.height),	// VkRect2D				renderArea;
+		static_cast<deUint32>(attachmentClearValues.size()),				// uint32_t				clearValueCount;
+		attachmentClearValues.data()										// const VkClearValue*	pClearValues;
 	};
 	RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoOutputSubsampledImage, &subpassBeginInfo);
 	vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineOutputSubsampledImage);
 	vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOutputSubsampledImage, 0, 1, &m_descriptorSetOutputSubsampledImage.get(), 0, DE_NULL);
-	vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
+	vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBufferOutput.get(), &vertexBufferOffset);
+	vk.cmdDraw(*m_cmdBuffer, (deUint32)m_verticesOutput.size(), 1, 0, 0);
 	RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
 
 	endCommandBuffer(vk, *m_cmdBuffer);
@@ -1170,7 +1455,8 @@
 	const VkQueue						queue					= m_context.getUniversalQueue();
 	const deUint32						queueFamilyIndex		= m_context.getUniversalQueueFamilyIndex();
 	SimpleAllocator						memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
-	de::UniquePtr<tcu::TextureLevel>	outputImage				(pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_outputImage, VK_FORMAT_R8G8B8A8_UNORM, m_renderSize).release());
+	tcu::UVec2							renderSize				{ m_testParams.renderSize.x(), m_testParams.renderSize.y() };
+	de::UniquePtr<tcu::TextureLevel>	outputImage				(pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_outputImage, VK_FORMAT_R8G8B8A8_UNORM, renderSize).release());
 	const tcu::ConstPixelBufferAccess&	outputAccess			= outputImage->getAccess();
 	tcu::TestLog&						log						= m_context.getTestContext().getLog();
 
@@ -1179,10 +1465,11 @@
 		<< tcu::TestLog::Image("Rendered", "Rendered output image", outputAccess)
 		<< tcu::TestLog::EndImageSet;
 
+	deUint32 colorCountCoeff = m_testParams.multiView ? 2u : 1u;
 #if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	deUint32 estimatedColorCount = m_testParams.fragmentArea.x() * m_testParams.fragmentArea.y();
+	deUint32 estimatedColorCount = colorCountCoeff * m_testParams.fragmentArea.x() * m_testParams.fragmentArea.y();
 #else
-	deUint32 estimatedColorCount = 1u;
+	deUint32 estimatedColorCount = colorCountCoeff;
 #endif
 	tcu::Vec2 density{
 		1.0f / static_cast<float>(m_testParams.fragmentArea.x()),
@@ -1223,6 +1510,48 @@
 {
 	de::MovePtr<tcu::TestCaseGroup>		fdmTests		(new tcu::TestCaseGroup(testCtx, "fragment_density_map", "VK_EXT_fragment_density_map extension tests"));
 
+	const struct
+	{
+		std::string				name;
+		bool					multiview;
+	} views[] =
+	{
+		{ "single_view",	false },
+		{ "multi_view",		true }
+	};
+
+	const struct
+	{
+		std::string				name;
+		bool					makeCopy;
+	} renders[] =
+	{
+		{ "render",			false },
+		{ "render_copy",	true }
+	};
+
+	const struct
+	{
+		std::string				name;
+		float					renderSizeToDensitySize;
+	} sizes[] =
+	{
+		{ "divisible_density_size",		4.0f },
+		{ "non_divisible_density_size",	3.75f }
+	};
+
+	const struct
+	{
+		std::string				name;
+		VkSampleCountFlagBits	samples;
+	} samples[] =
+	{
+		{ "1_sample",	VK_SAMPLE_COUNT_1_BIT },
+		{ "2_samples",	VK_SAMPLE_COUNT_2_BIT },
+		{ "4_samples",	VK_SAMPLE_COUNT_4_BIT },
+		{ "8_samples",	VK_SAMPLE_COUNT_8_BIT }
+	};
+
 	std::vector<tcu::UVec2> fragmentArea
 	{
 		{ 1, 2 },
@@ -1230,16 +1559,35 @@
 		{ 2, 2 }
 	};
 
-	for (const auto& area : fragmentArea)
+	for (const auto& view : views)
 	{
-		std::stringstream str;
-		str << "_" << area.x() << "_" << area.y();
-		fdmTests->addChild(new FragmentDensityMapTest(testCtx, std::string("static_subsampled")		+ str.str(), "", TestParams(false, false, area)));
-		fdmTests->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_subsampled")	+ str.str(), "", TestParams(true, false, area)));
-		fdmTests->addChild(new FragmentDensityMapTest(testCtx, std::string("static_nonsubsampled")	+ str.str(), "", TestParams(false, true, area)));
-		fdmTests->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_nonsubsampled")	+ str.str(), "", TestParams(true, true, area)));
+		de::MovePtr<tcu::TestCaseGroup>		viewGroup(new tcu::TestCaseGroup(testCtx, view.name.c_str(), ""));
+		for (const auto& render : renders)
+		{
+			de::MovePtr<tcu::TestCaseGroup>		renderGroup(new tcu::TestCaseGroup(testCtx, render.name.c_str(), ""));
+			for (const auto& size : sizes)
+			{
+				de::MovePtr<tcu::TestCaseGroup>		sizeGroup(new tcu::TestCaseGroup(testCtx, size.name.c_str(), ""));
+				for (const auto& sample : samples)
+				{
+					de::MovePtr<tcu::TestCaseGroup>		sampleGroup(new tcu::TestCaseGroup(testCtx, sample.name.c_str(), ""));
+					for (const auto& area : fragmentArea)
+					{
+						std::stringstream str;
+						str << "_" << area.x() << "_" << area.y();
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_subsampled") + str.str(), "", TestParams(false, false, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_subsampled") + str.str(), "", TestParams(true, false, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_nonsubsampled") + str.str(), "", TestParams(false, true, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_nonsubsampled") + str.str(), "", TestParams(true, true, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
+					}
+					sizeGroup->addChild(sampleGroup.release());
+				}
+				renderGroup->addChild(sizeGroup.release());
+			}
+			viewGroup->addChild(renderGroup.release());
+		}
+		fdmTests->addChild(viewGroup.release());
 	}
-
 	return fdmTests.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp
new file mode 100644
index 0000000..91f64fd
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp
@@ -0,0 +1,879 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Tests vkCmdClearAttachments with unused attachments.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.hpp"
+#include "pipeline/vktPipelineImageUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkRefUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkImageUtil.hpp"
+#include "tcuTextureUtil.hpp"
+#include "tcuImageCompare.hpp"
+#include <sstream>
+#include <functional>
+#include <vector>
+#include <string>
+#include <memory>
+
+namespace vkt
+{
+namespace renderpass
+{
+
+namespace
+{
+
+struct Vertex
+{
+	tcu::Vec4	position;
+	tcu::Vec4	color;
+};
+
+template<typename T>
+inline VkDeviceSize sizeInBytes(const std::vector<T>& vec)
+{
+	return vec.size() * sizeof(vec[0]);
+}
+
+std::vector<Vertex> genVertices (void)
+{
+	std::vector<Vertex>		vectorData;
+	const tcu::Vec4			red			= {1.0f, 0.0f, 0.0f, 1.0f};
+	const tcu::Vec4			green		= {0.0f, 1.0f, 0.0f, 1.0f};
+	const tcu::Vec4			blue		= {0.0f, 0.0f, 1.0f, 1.0f};
+	const tcu::Vec4			yellow		= {1.0f, 1.0f, 0.0f, 1.0f};
+
+	vectorData.push_back({tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f) , red});
+	vectorData.push_back({tcu::Vec4( 0.0f, -1.0f, 0.0f, 1.0f) , red});
+	vectorData.push_back({tcu::Vec4(-1.0f,  1.0f, 0.0f, 1.0f) , red});
+	vectorData.push_back({tcu::Vec4( 0.0f,  1.0f, 0.0f, 1.0f) , red});
+
+	vectorData.push_back({tcu::Vec4( 0.0f, -1.0f, 0.0f, 1.0f) , green});
+	vectorData.push_back({tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f) , green});
+	vectorData.push_back({tcu::Vec4( 0.0f,  1.0f, 0.0f, 1.0f) , green});
+	vectorData.push_back({tcu::Vec4( 1.0f,  1.0f, 0.0f, 1.0f) , green});
+
+	vectorData.push_back({tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f) , blue});
+	vectorData.push_back({tcu::Vec4( 0.0f, -1.0f, 0.0f, 1.0f) , blue});
+	vectorData.push_back({tcu::Vec4(-1.0f,  1.0f, 0.0f, 1.0f) , blue});
+	vectorData.push_back({tcu::Vec4( 0.0f,  1.0f, 0.0f, 1.0f) , blue});
+
+	vectorData.push_back({tcu::Vec4( 0.0f, -1.0f, 0.0f, 1.0f) , yellow});
+	vectorData.push_back({tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f) , yellow});
+	vectorData.push_back({tcu::Vec4( 0.0f,  1.0f, 0.0f, 1.0f) , yellow});
+	vectorData.push_back({tcu::Vec4( 1.0f,  1.0f, 0.0f, 1.0f) , yellow});
+
+	return vectorData;
+}
+
+class MultipleSubpassesMultipleCommandBuffersTestInstance : public TestInstance
+{
+public:
+											MultipleSubpassesMultipleCommandBuffersTestInstance	(Context&			context);
+	virtual									~MultipleSubpassesMultipleCommandBuffersTestInstance	(void) {}
+	virtual tcu::TestStatus					iterate								(void);
+	void									createCommandBuffer					(const DeviceInterface&	vk,
+																				 VkDevice				vkDevice);
+private:
+	static constexpr deUint32				kImageWidth			= 32;
+	static constexpr deUint32				kImageHeight		= 32;
+	const tcu::UVec2						m_renderSize		= { kImageWidth, kImageHeight };
+
+	// FIXME: check if I need all of this.
+	VkClearValue							m_initialColor;
+	VkClearValue							m_clearColor;
+
+	Move<VkImage>							m_colorImageA;
+	de::MovePtr<Allocation>					m_colorImageAllocA;
+	Move<VkImageView>						m_colorAttachmentViewA;
+
+	Move<VkImage>							m_colorImageB;
+	de::MovePtr<Allocation>					m_colorImageAllocB;
+	Move<VkImageView>						m_colorAttachmentViewB;
+
+	Move<VkRenderPass>						m_renderPass;
+	Move<VkFramebuffer>						m_framebufferA;
+	Move<VkFramebuffer>						m_framebufferB;
+	Move<VkShaderModule>					m_vertexShaderModule;
+	Move<VkShaderModule>					m_fragmentShaderModule;
+	Move<VkDescriptorSetLayout>				m_descriptorSetLayout;
+	Move<VkPipelineLayout>					m_pipelineLayout;
+	Move<VkPipeline>						m_graphicsPipeline0;
+	Move<VkPipeline>						m_graphicsPipeline1;
+	Move<VkPipeline>						m_graphicsPipeline2;
+	Move<VkCommandPool>						m_cmdPool;
+	Move<VkCommandBuffer>					m_cmdBufferA;
+	Move<VkCommandBuffer>					m_cmdBufferB;
+
+	Move<VkBuffer>							m_vertexBuffer;
+	de::MovePtr<Allocation>					m_vertexBufferAlloc;
+};
+
+class MultipleSubpassesMultipleCommandBuffersTest : public vkt::TestCase
+{
+public:
+										MultipleSubpassesMultipleCommandBuffersTest	(tcu::TestContext&	testContext,
+																	 const std::string&	name,
+																	 const std::string&	description)
+											: vkt::TestCase(testContext, name, description)
+											{}
+	virtual								~MultipleSubpassesMultipleCommandBuffersTest	(void) {}
+	virtual void						initPrograms				(SourceCollections&	sourceCollections) const;
+	virtual TestInstance*				createInstance				(Context&			context) const;
+};
+
+TestInstance* MultipleSubpassesMultipleCommandBuffersTest::createInstance (Context& context) const
+{
+	return new MultipleSubpassesMultipleCommandBuffersTestInstance(context);
+}
+
+void MultipleSubpassesMultipleCommandBuffersTest::initPrograms (SourceCollections& sourceCollections) const
+{
+	// Vertex shader.
+	sourceCollections.glslSources.add("vert_shader") << glu::VertexSource(
+		"#version 450\n"
+		"layout(location = 0) in vec4 position;\n"
+		"layout(location = 1) in vec4 color;\n"
+		"layout(location = 0) out vec4 vtxColor;\n"
+		"void main (void)\n"
+		"{\n"
+		"\tgl_Position = position;\n"
+		"\tvtxColor = color;\n"
+		"}\n");
+
+	// Fragment shader.
+	std::ostringstream fragmentSource;
+
+	fragmentSource	<< "#version 450\n"
+					<< "layout(location = 0) in vec4 vtxColor;\n"
+					<< "layout(location = 0) out vec4 fragColor;\n"
+					<< "void main (void)\n"
+					<< "{\n"
+					<< "\tfragColor = vtxColor;\n"
+					<< "}\n";
+
+	sourceCollections.glslSources.add("frag_shader") << glu::FragmentSource(fragmentSource.str());
+}
+
+// Create a render pass for this use case.
+Move<VkRenderPass> createRenderPass (const DeviceInterface&	vk, VkDevice vkDevice)
+{
+	// XXX: Add more code to this
+	// Create attachment descriptions.
+	const VkAttachmentDescription		attachmentDescription	=
+	{
+		(VkAttachmentDescriptionFlags)0,			// VkAttachmentDescriptionFlags		flags
+		VK_FORMAT_R32G32B32A32_SFLOAT,				// VkFormat							format
+		VK_SAMPLE_COUNT_1_BIT,						// VkSampleCountFlagBits			samples
+		VK_ATTACHMENT_LOAD_OP_LOAD,					// VkAttachmentLoadOp				loadOp
+		VK_ATTACHMENT_STORE_OP_STORE,				// VkAttachmentStoreOp				storeOp
+		VK_ATTACHMENT_LOAD_OP_DONT_CARE,			// VkAttachmentLoadOp				stencilLoadOp
+		VK_ATTACHMENT_STORE_OP_DONT_CARE,			// VkAttachmentStoreOp				stencilStoreOp
+		VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout					initialLayout
+		VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL	// VkImageLayout					finalLayout
+	};
+
+	// XXX: Review this parameters, I think I am doing it wrong.
+	// Mark attachments as used or not depending on the test parameters.
+	const VkAttachmentReference			attachmentReference
+	{
+		0u,																	// deUint32				attachment
+		VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,							// VkImageLayout		layout
+	};
+
+	// Create subpass description with the previous color attachment references.
+	std::vector<vk::VkSubpassDescription> subpassDescriptions;
+	{
+		const vk::VkSubpassDescription			subpassDescription =
+		{
+			(VkSubpassDescriptionFlags)0,											// VkSubpassDescriptionFlags		flags
+			VK_PIPELINE_BIND_POINT_GRAPHICS,										// VkPipelineBindPoint				pipelineBindPoint
+			0u,																		// deUint32							inputAttachmentCount
+			DE_NULL,																// const VkAttachmentReference*		pInputAttachments
+			1u,																		// deUint32							colorAttachmentCount
+			&attachmentReference,													// const VkAttachmentReference*		pColorAttachments
+			DE_NULL,																// const VkAttachmentReference*		pResolveAttachments
+			DE_NULL,																// const VkAttachmentReference*		pDepthStencilAttachment
+			0u,																		// deUint32							preserveAttachmentCount
+			DE_NULL																	// const deUint32*					pPreserveAttachments
+		};
+		subpassDescriptions.emplace_back(subpassDescription);
+		subpassDescriptions.emplace_back(subpassDescription);
+		subpassDescriptions.emplace_back(subpassDescription);
+	}
+
+	std::vector<vk::VkSubpassDependency> subpassDependencies;
+	{
+		vk::VkSubpassDependency			subpassDependency =
+		{
+			0u,												// deUint32				srcSubpass
+			1u,												// deUint32					dstSubpass
+			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,	// VkPipelineStageFlags		srcStageMask
+			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,	// VkPipelineStageFlags		dstStageMask
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,			// VkAccessFlags			srcAccessMask
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,			// VkAccessFlags			dstAccessMask
+			0u												// VkDependencyFlags		dependencyFlags
+		};
+		subpassDependencies.emplace_back(subpassDependency);
+		subpassDependency.srcSubpass = 1u;
+		subpassDependency.dstSubpass = 2u;
+		subpassDependencies.emplace_back(subpassDependency);
+	}
+
+
+	const vk::VkRenderPassCreateInfo	renderPassInfo =
+	{
+		VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,								// VkStructureType					sType
+		DE_NULL,																// const void*						pNext
+		(VkRenderPassCreateFlags)0,												// VkRenderPassCreateFlags			flags
+		1u,																		// deUint32							attachmentCount
+		&attachmentDescription,													// const VkAttachmentDescription*	pAttachments
+		static_cast<deUint32>(subpassDescriptions.size()),						// deUint32							subpassCount
+		subpassDescriptions.data(),												// const VkSubpassDescription*		pSubpasses
+		static_cast<deUint32>(subpassDependencies.size()),						// deUint32							dependencyCount
+		subpassDependencies.data(),												// const VkSubpassDependency*		pDependencies
+	};
+
+	return createRenderPass(vk, vkDevice, &renderPassInfo);
+}
+
+MultipleSubpassesMultipleCommandBuffersTestInstance::MultipleSubpassesMultipleCommandBuffersTestInstance(Context&	context)
+	: vkt::TestInstance(context)
+{
+	// Initial color for all images.
+	m_initialColor.color.float32[0] = 0.0f;
+	m_initialColor.color.float32[1] = 0.0f;
+	m_initialColor.color.float32[2] = 0.0f;
+	m_initialColor.color.float32[3] = 1.0f;
+
+	// Clear color for used attachments.
+	m_clearColor.color.float32[0] = 1.0f;
+	m_clearColor.color.float32[1] = 1.0f;
+	m_clearColor.color.float32[2] = 1.0f;
+	m_clearColor.color.float32[3] = 1.0f;
+
+	const DeviceInterface&		vk						= m_context.getDeviceInterface();
+	const VkDevice				vkDevice				= m_context.getDevice();
+	const deUint32				queueFamilyIndex		= m_context.getUniversalQueueFamilyIndex();
+	SimpleAllocator				memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+	const VkComponentMapping	componentMapping		= { VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY };
+
+	// Create color images.
+	{
+		const VkImageCreateInfo	colorImageParams =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,									// VkStructureType			sType;
+			DE_NULL,																// const void*				pNext;
+			0u,																		// VkImageCreateFlags		flags;
+			VK_IMAGE_TYPE_2D,														// VkImageType				imageType;
+			VK_FORMAT_R32G32B32A32_SFLOAT,											// VkFormat					format;
+			{ kImageWidth, kImageHeight, 1u },										// VkExtent3D				extent;
+			1u,																		// deUint32					mipLevels;
+			1u,																		// deUint32					arrayLayers;
+			VK_SAMPLE_COUNT_1_BIT,													// VkSampleCountFlagBits	samples;
+			VK_IMAGE_TILING_OPTIMAL,												// VkImageTiling			tiling;
+			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT
+				| VK_IMAGE_USAGE_TRANSFER_DST_BIT,									// VkImageUsageFlags		usage;
+			VK_SHARING_MODE_EXCLUSIVE,												// VkSharingMode			sharingMode;
+			1u,																		// deUint32					queueFamilyIndexCount;
+			&queueFamilyIndex,														// const deUint32*			pQueueFamilyIndices;
+			VK_IMAGE_LAYOUT_UNDEFINED												// VkImageLayout			initialLayout;
+		};
+		// Create, allocate and bind image memory.
+		m_colorImageA = createImage(vk, vkDevice, &colorImageParams);
+		m_colorImageAllocA = memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *m_colorImageA), MemoryRequirement::Any);
+		VK_CHECK(vk.bindImageMemory(vkDevice, *m_colorImageA, m_colorImageAllocA->getMemory(), m_colorImageAllocA->getOffset()));
+
+		m_colorImageB = createImage(vk, vkDevice, &colorImageParams);
+		m_colorImageAllocB = memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *m_colorImageB), MemoryRequirement::Any);
+		VK_CHECK(vk.bindImageMemory(vkDevice, *m_colorImageB, m_colorImageAllocB->getMemory(), m_colorImageAllocB->getOffset()));
+
+		// Create image view.
+		{
+			const VkImageViewCreateInfo colorAttachmentViewParamsA =
+			{
+				VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,			// VkStructureType			sType;
+				DE_NULL,											// const void*				pNext;
+				0u,													// VkImageViewCreateFlags	flags;
+				*m_colorImageA,										// VkImage					image;
+				VK_IMAGE_VIEW_TYPE_2D,								// VkImageViewType			viewType;
+				VK_FORMAT_R32G32B32A32_SFLOAT,						// VkFormat					format;
+				componentMapping,									// VkChannelMapping			channels;
+				{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }		// VkImageSubresourceRange	subresourceRange;
+			};
+			m_colorAttachmentViewA = createImageView(vk, vkDevice, &colorAttachmentViewParamsA);
+
+			const VkImageViewCreateInfo colorAttachmentViewParamsB =
+			{
+				VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,			// VkStructureType			sType;
+				DE_NULL,											// const void*				pNext;
+				0u,													// VkImageViewCreateFlags	flags;
+				*m_colorImageB,										// VkImage					image;
+				VK_IMAGE_VIEW_TYPE_2D,								// VkImageViewType			viewType;
+				VK_FORMAT_R32G32B32A32_SFLOAT,						// VkFormat					format;
+				componentMapping,									// VkChannelMapping			channels;
+				{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }		// VkImageSubresourceRange	subresourceRange;
+			};
+			m_colorAttachmentViewB = createImageView(vk, vkDevice, &colorAttachmentViewParamsB);
+		}
+
+		// Clear image and leave it prepared to be used as a color attachment.
+		{
+			const VkImageAspectFlags		aspectMask	= VK_IMAGE_ASPECT_COLOR_BIT;
+			Move<VkCommandPool>				cmdPool;
+			Move<VkCommandBuffer>			cmdBuffer;
+			std::vector<VkImageMemoryBarrier> preImageBarriers;
+			std::vector<VkImageMemoryBarrier> postImageBarriers;
+
+			// Create command pool and buffer
+			cmdPool		= createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
+			cmdBuffer	= allocateCommandBuffer(vk, vkDevice, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+
+			// From undefined layout to VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
+			const VkImageMemoryBarrier preImageBarrierA =
+			{
+				 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,	// VkStructureType			sType;
+				 DE_NULL,									// const void*				pNext;
+				 0u,										// VkAccessFlags			srcAccessMask;
+				 VK_ACCESS_TRANSFER_WRITE_BIT,				// VkAccessFlags			dstAccessMask;
+				 VK_IMAGE_LAYOUT_UNDEFINED,					// VkImageLayout			oldLayout;
+				 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,		// VkImageLayout			newLayout;
+				 VK_QUEUE_FAMILY_IGNORED,					// deUint32					srcQueueFamilyIndex;
+				 VK_QUEUE_FAMILY_IGNORED,					// deUint32					dstQueueFamilyIndex;
+				 *m_colorImageA,							// VkImage					image;
+				 {											// VkImageSubresourceRange	subresourceRange;
+					aspectMask,								// VkImageAspect			aspect;
+					0u,										// deUint32					baseMipLevel;
+					1u,										// deUint32					mipLevels;
+					0u,										// deUint32					baseArraySlice;
+					1u										// deUint32					arraySize;
+				 }
+			};
+
+			preImageBarriers.emplace_back(preImageBarrierA);
+
+			// From VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL to VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL.
+			const VkImageMemoryBarrier postImageBarrierA =
+			{
+				VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,		// VkStructureType			sType;
+				DE_NULL,									// const void*				pNext;
+				VK_ACCESS_TRANSFER_WRITE_BIT,				// VkAccessFlags			srcAccessMask;
+				VK_ACCESS_SHADER_READ_BIT,					// VkAccessFlags			dstAccessMask;
+				VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,		// VkImageLayout			oldLayout;
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout			newLayout;
+				VK_QUEUE_FAMILY_IGNORED,					// deUint32					srcQueueFamilyIndex;
+				VK_QUEUE_FAMILY_IGNORED,					// deUint32					dstQueueFamilyIndex;
+				*m_colorImageA,								// VkImage					image;
+				{											// VkImageSubresourceRange	subresourceRange;
+					aspectMask,								// VkImageAspect			aspect;
+					0u,										// deUint32					baseMipLevel;
+					1u,										// deUint32					mipLevels;
+					0u,										// deUint32					baseArraySlice;
+					1u										// deUint32					arraySize;
+				}
+			};
+
+			postImageBarriers.emplace_back(postImageBarrierA);
+
+			// From undefined layout to VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
+			const VkImageMemoryBarrier preImageBarrierB =
+			{
+				 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,	// VkStructureType			sType;
+				 DE_NULL,									// const void*				pNext;
+				 0u,										// VkAccessFlags			srcAccessMask;
+				 VK_ACCESS_TRANSFER_WRITE_BIT,				// VkAccessFlags			dstAccessMask;
+				 VK_IMAGE_LAYOUT_UNDEFINED,					// VkImageLayout			oldLayout;
+				 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,		// VkImageLayout			newLayout;
+				 VK_QUEUE_FAMILY_IGNORED,					// deUint32					srcQueueFamilyIndex;
+				 VK_QUEUE_FAMILY_IGNORED,					// deUint32					dstQueueFamilyIndex;
+				 *m_colorImageB,							// VkImage					image;
+				 {											// VkImageSubresourceRange	subresourceRange;
+					aspectMask,								// VkImageAspect			aspect;
+					0u,										// deUint32					baseMipLevel;
+					1u,										// deUint32					mipLevels;
+					0u,										// deUint32					baseArraySlice;
+					1u										// deUint32					arraySize;
+				 }
+			};
+
+			preImageBarriers.emplace_back(preImageBarrierB);
+
+			// From VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL to VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL.
+			const VkImageMemoryBarrier postImageBarrierB =
+			{
+				VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,		// VkStructureType			sType;
+				DE_NULL,									// const void*				pNext;
+				VK_ACCESS_TRANSFER_WRITE_BIT,				// VkAccessFlags			srcAccessMask;
+				VK_ACCESS_SHADER_READ_BIT,					// VkAccessFlags			dstAccessMask;
+				VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,		// VkImageLayout			oldLayout;
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	// VkImageLayout			newLayout;
+				VK_QUEUE_FAMILY_IGNORED,					// deUint32					srcQueueFamilyIndex;
+				VK_QUEUE_FAMILY_IGNORED,					// deUint32					dstQueueFamilyIndex;
+				*m_colorImageB,								// VkImage					image;
+				{											// VkImageSubresourceRange	subresourceRange;
+					aspectMask,								// VkImageAspect			aspect;
+					0u,										// deUint32					baseMipLevel;
+					1u,										// deUint32					mipLevels;
+					0u,										// deUint32					baseArraySlice;
+					1u										// deUint32					arraySize;
+				}
+			};
+
+			postImageBarriers.emplace_back(postImageBarrierB);
+
+			const VkImageSubresourceRange clearRange	=
+			{
+				aspectMask,	// VkImageAspectFlags	aspectMask;
+				0u,			// deUint32				baseMipLevel;
+				1u,			// deUint32				levelCount;
+				0u,			// deUint32				baseArrayLayer;
+				1u			// deUint32				layerCount;
+			};
+
+			// Clear image and transfer layout.
+			beginCommandBuffer(vk, *cmdBuffer);
+			vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, static_cast<deUint32>(preImageBarriers.size()), preImageBarriers.data());
+			vk.cmdClearColorImage(*cmdBuffer, *m_colorImageA, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &m_initialColor.color, 1, &clearRange);
+			vk.cmdClearColorImage(*cmdBuffer, *m_colorImageB, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &m_initialColor.color, 1, &clearRange);
+			vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, static_cast<deUint32>(postImageBarriers.size()), postImageBarriers.data());
+			endCommandBuffer(vk, *cmdBuffer);
+
+			submitCommandsAndWait(vk, vkDevice, m_context.getUniversalQueue(), cmdBuffer.get());
+		}
+	}
+
+	// Create render pass.
+	m_renderPass = createRenderPass(vk, vkDevice);
+
+	// Create framebuffer
+	{
+		const VkImageView				attachmentBindInfosA[1]			=
+		{
+			*m_colorAttachmentViewA,
+		};
+		const VkFramebufferCreateInfo	framebufferParamsA	=
+		{
+			VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,			// VkStructureType			sType;
+			DE_NULL,											// const void*				pNext;
+			0u,													// VkFramebufferCreateFlags	flags;
+			*m_renderPass,										// VkRenderPass				renderPass;
+			1u,													// deUint32					attachmentCount;
+			attachmentBindInfosA,								// const VkImageView*		pAttachments;
+			kImageWidth,										// deUint32					width;
+			kImageHeight,										// deUint32					height;
+			1u													// deUint32					layers;
+		};
+
+		m_framebufferA = createFramebuffer(vk, vkDevice, &framebufferParamsA);
+
+		const VkImageView				attachmentBindInfosB[1]			=
+		{
+			*m_colorAttachmentViewB,
+		};
+		const VkFramebufferCreateInfo	framebufferParamsB	=
+		{
+			VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,			// VkStructureType			sType;
+			DE_NULL,											// const void*				pNext;
+			0u,													// VkFramebufferCreateFlags	flags;
+			*m_renderPass,										// VkRenderPass				renderPass;
+			1u,													// deUint32					attachmentCount;
+			attachmentBindInfosB,								// const VkImageView*		pAttachments;
+			kImageWidth,										// deUint32					width;
+			kImageHeight,										// deUint32					height;
+			1u													// deUint32					layers;
+		};
+
+		m_framebufferB = createFramebuffer(vk, vkDevice, &framebufferParamsB);
+	}
+
+	// Create pipeline layout.
+	{
+		const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutParams	=
+		{
+			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType
+			DE_NULL,												// const void*							pNext
+			0u,														// VkDescriptorSetLayoutCreateFlags		flags
+			0u,														// deUint32								bindingCount
+			DE_NULL													// const VkDescriptorSetLayoutBinding*	pBindings
+		};
+		m_descriptorSetLayout = createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutParams);
+
+		const VkPipelineLayoutCreateInfo		pipelineLayoutParams		=
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,		// VkStructureType					sType;
+			DE_NULL,											// const void*						pNext;
+			0u,													// VkPipelineLayoutCreateFlags		flags;
+			1u,													// deUint32							setLayoutCount;
+			&m_descriptorSetLayout.get(),						// const VkDescriptorSetLayout*		pSetLayouts;
+			0u,													// deUint32							pushConstantRangeCount;
+			DE_NULL												// const VkPushConstantRange*		pPushConstantRanges;
+		};
+
+		m_pipelineLayout = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
+	}
+
+	// Create Vertex buffer
+	{
+		const std::vector<Vertex>		vertexValues		= genVertices();
+		const VkDeviceSize				vertexBufferSize	= sizeInBytes(vertexValues);
+
+		const vk::VkBufferCreateInfo	bufferCreateInfo	=
+		{
+			VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,				// VkStructureType		sType
+			DE_NULL,											// const void*			pNext
+			0u,													// VkBufferCreateFlags	flags
+			vertexBufferSize,									// VkDeviceSize			size
+			VK_BUFFER_USAGE_VERTEX_BUFFER_BIT |
+			VK_BUFFER_USAGE_TRANSFER_DST_BIT,					// VkBufferUsageFlags	usage
+			VK_SHARING_MODE_EXCLUSIVE,							// VkSharingMode		sharingMode
+			1u,													// deUint32				queueFamilyIndexCount
+			&queueFamilyIndex									// const deUint32*		pQueueFamilyIndices
+		};
+
+		m_vertexBuffer		= createBuffer(vk, vkDevice, &bufferCreateInfo);
+		m_vertexBufferAlloc	= memAlloc.allocate(getBufferMemoryRequirements(vk, vkDevice, *m_vertexBuffer), MemoryRequirement::HostVisible);
+		VK_CHECK(vk.bindBufferMemory(vkDevice, *m_vertexBuffer, m_vertexBufferAlloc->getMemory(), m_vertexBufferAlloc->getOffset()));
+		// Load vertices into vertex buffer
+		deMemcpy(m_vertexBufferAlloc->getHostPtr(), vertexValues.data(), static_cast<size_t>(vertexBufferSize));
+		flushAlloc(vk, vkDevice, *m_vertexBufferAlloc);
+	}
+
+	// Vertex buffer description
+	const vk::VkVertexInputBindingDescription bindingDescription =
+	{
+		0u,													// deUint32				binding
+		sizeof(Vertex),										// deUint32				stride
+		VK_VERTEX_INPUT_RATE_VERTEX							// VkVertexInputRate	inputRate
+	};
+
+	std::vector<vk::VkVertexInputAttributeDescription> attributeDescriptions;
+	{
+		vk::VkVertexInputAttributeDescription attributeDescriptionVertex =
+		{
+			0u,									// deUint32		location
+			0u,									// deUint32		binding
+			VK_FORMAT_R32G32B32A32_SFLOAT,		// VkFormat		format
+			offsetof(Vertex, position)			// deUint32		offset
+		};
+
+		vk::VkVertexInputAttributeDescription attributeDescriptionColor =
+		{
+			1u,									// deUint32		location
+			0u,									// deUint32		binding
+			VK_FORMAT_R32G32B32A32_SFLOAT,		// VkFormat		format
+			offsetof(Vertex, color)				// deUint32		offset
+		};
+		attributeDescriptions.emplace_back(attributeDescriptionVertex);
+		attributeDescriptions.emplace_back(attributeDescriptionColor);
+	}
+
+	const vk::VkPipelineVertexInputStateCreateInfo vertexInputState =
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,		// VkStructureType							sType
+		DE_NULL,														// const void*								pNext
+		0u,																// VkPipelineVertexInputStateCreateFlags	flags
+		1u,																// deUint32									vertexBindingDescriptionCount
+		&bindingDescription,											// const VkVertexInputBindingDescription*	pVertexBindingDescriptions
+		static_cast<deUint32>(attributeDescriptions.size()),			// deUint32									vertexAttributeDescriptionCount
+		attributeDescriptions.data(),									// const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions
+	};
+
+	m_vertexShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("vert_shader"), 0);
+	m_fragmentShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("frag_shader"), 0);
+
+	// Create pipeline.
+	{
+		const std::vector<VkViewport>						viewports						(1, makeViewport(m_renderSize));
+		const std::vector<VkRect2D>							scissors						(1, makeRect2D(m_renderSize));
+
+		const VkPipelineColorBlendAttachmentState			colorBlendAttachmentState		=
+		{
+			VK_FALSE,					// VkBool32					blendEnable
+			VK_BLEND_FACTOR_ZERO,		// VkBlendFactor			srcColorBlendFactor
+			VK_BLEND_FACTOR_ZERO,		// VkBlendFactor			dstColorBlendFactor
+			VK_BLEND_OP_ADD,			// VkBlendOp				colorBlendOp
+			VK_BLEND_FACTOR_ZERO,		// VkBlendFactor			srcAlphaBlendFactor
+			VK_BLEND_FACTOR_ZERO,		// VkBlendFactor			dstAlphaBlendFactor
+			VK_BLEND_OP_ADD,			// VkBlendOp				alphaBlendOp
+			VK_COLOR_COMPONENT_R_BIT	// VkColorComponentFlags	colorWriteMask
+			| VK_COLOR_COMPONENT_G_BIT
+			| VK_COLOR_COMPONENT_B_BIT
+			| VK_COLOR_COMPONENT_A_BIT
+		};
+
+		const VkPipelineColorBlendStateCreateInfo			colorBlendStateCreateInfo		=
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,							// VkStructureType								sType
+			DE_NULL,																			// const void*									pNext
+			0u,																					// VkPipelineColorBlendStateCreateFlags			flags
+			VK_FALSE,																			// VkBool32										logicOpEnable
+			VK_LOGIC_OP_CLEAR,																	// VkLogicOp									logicOp
+		    1u,																					// deUint32										attachmentCount
+		    &colorBlendAttachmentState,															// const VkPipelineColorBlendAttachmentState*	pAttachments
+			{ 0.0f, 0.0f, 0.0f, 0.0f }															// float										blendConstants[4]
+		};
+
+		m_graphicsPipeline0 = makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
+												   vkDevice,								// const VkDevice									device
+												   *m_pipelineLayout,					// const VkPipelineLayout							pipelineLayout
+												   *m_vertexShaderModule,				// const VkShaderModule								vertexShaderModule
+												   DE_NULL,								// const VkShaderModule								tessellationControlModule
+												   DE_NULL,								// const VkShaderModule								tessellationEvalModule
+												   DE_NULL,								// const VkShaderModule								geometryShaderModule
+												   *m_fragmentShaderModule,				// const VkShaderModule								fragmentShaderModule
+												   *m_renderPass,						// const VkRenderPass								renderPass
+												   viewports,							// const std::vector<VkViewport>&					viewports
+												   scissors,								// const std::vector<VkRect2D>&						scissors
+												   VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,	// const VkPrimitiveTopology						topology
+												   0u,									// const deUint32									subpass
+												   0u,									// const deUint32									patchControlPoints
+												   &vertexInputState,					// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+												   DE_NULL,								// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
+												   DE_NULL,								// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
+												   DE_NULL,								// const VkPipelineDepthStencilStateCreateInfo*		depthStencilStateCreateInfo
+												   &colorBlendStateCreateInfo);			// const VkPipelineColorBlendStateCreateInfo*		colorBlendStateCreateInfo
+
+		m_graphicsPipeline1 = makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
+												   vkDevice,								// const VkDevice									device
+												   *m_pipelineLayout,					// const VkPipelineLayout							pipelineLayout
+												   *m_vertexShaderModule,				// const VkShaderModule								vertexShaderModule
+												   DE_NULL,								// const VkShaderModule								tessellationControlModule
+												   DE_NULL,								// const VkShaderModule								tessellationEvalModule
+												   DE_NULL,								// const VkShaderModule								geometryShaderModule
+												   *m_fragmentShaderModule,				// const VkShaderModule								fragmentShaderModule
+												   *m_renderPass,						// const VkRenderPass								renderPass
+												   viewports,							// const std::vector<VkViewport>&					viewports
+												   scissors,								// const std::vector<VkRect2D>&						scissors
+												   VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,	// const VkPrimitiveTopology						topology
+												   1u,									// const deUint32									subpass
+												   0u,									// const deUint32									patchControlPoints
+												   &vertexInputState,					// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+												   DE_NULL,								// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
+												   DE_NULL,								// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
+												   DE_NULL,								// const VkPipelineDepthStencilStateCreateInfo*		depthStencilStateCreateInfo
+												   &colorBlendStateCreateInfo);			// const VkPipelineColorBlendStateCreateInfo*		colorBlendStateCreateInfo
+
+		m_graphicsPipeline2 = makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
+												   vkDevice,								// const VkDevice									device
+												   *m_pipelineLayout,					// const VkPipelineLayout							pipelineLayout
+												   *m_vertexShaderModule,				// const VkShaderModule								vertexShaderModule
+												   DE_NULL,								// const VkShaderModule								tessellationControlModule
+												   DE_NULL,								// const VkShaderModule								tessellationEvalModule
+												   DE_NULL,								// const VkShaderModule								geometryShaderModule
+												   *m_fragmentShaderModule,				// const VkShaderModule								fragmentShaderModule
+												   *m_renderPass,						// const VkRenderPass								renderPass
+												   viewports,							// const std::vector<VkViewport>&					viewports
+												   scissors,								// const std::vector<VkRect2D>&						scissors
+												   VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,	// const VkPrimitiveTopology						topology
+												   2u,									// const deUint32									subpass
+												   0u,									// const deUint32									patchControlPoints
+												   &vertexInputState,					// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+												   DE_NULL,								// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
+												   DE_NULL,								// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
+												   DE_NULL,								// const VkPipelineDepthStencilStateCreateInfo*		depthStencilStateCreateInfo
+												   &colorBlendStateCreateInfo);			// const VkPipelineColorBlendStateCreateInfo*		colorBlendStateCreateInfo
+
+	}
+
+	// Create command pool
+	m_cmdPool = createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
+
+	// Create command buffer
+	createCommandBuffer(vk, vkDevice);
+}
+
+void MultipleSubpassesMultipleCommandBuffersTestInstance::createCommandBuffer (const DeviceInterface&	vk,
+																		  VkDevice					vkDevice)
+{
+	const VkRenderPassBeginInfo							renderPassBeginInfoA	=
+	{
+		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,	// VkStructureType		sType;
+		DE_NULL,									// const void*			pNext;
+		*m_renderPass,								// VkRenderPass			renderPass;
+		*m_framebufferA,							// VkFramebuffer		framebuffer;
+		makeRect2D(m_renderSize),					// VkRect2D				renderArea;
+		0u,											// uint32_t				clearValueCount;
+		DE_NULL										// const VkClearValue*	pClearValues;
+	};
+	const VkRenderPassBeginInfo							renderPassBeginInfoB	=
+	{
+		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,	// VkStructureType		sType;
+		DE_NULL,									// const void*			pNext;
+		*m_renderPass,								// VkRenderPass			renderPass;
+		*m_framebufferB,							// VkFramebuffer		framebuffer;
+		makeRect2D(m_renderSize),					// VkRect2D				renderArea;
+		0u,											// uint32_t				clearValueCount;
+		DE_NULL										// const VkClearValue*	pClearValues;
+	};
+
+	m_cmdBufferA = allocateCommandBuffer(vk, vkDevice, *m_cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	m_cmdBufferB = allocateCommandBuffer(vk, vkDevice, *m_cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+
+	const VkClearRect									clearRect			=
+	{
+		{												// VkRect2D		rect;
+			{ 0, 0, },									//	VkOffset2D	offset;
+			{ kImageWidth, kImageHeight }				//	VkExtent2D	extent;
+		},
+		0u,												// uint32_t		baseArrayLayer;
+		1u												// uint32_t		layerCount;
+	};
+
+	const VkClearAttachment clearAttachment =
+	{
+		VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+		0u,							// uint32_t				colorAttachment;
+		m_clearColor				// VkClearValue			clearValue;
+	};
+
+	VkDeviceSize	vertexBufferOffset	= 0u;
+
+	// Command Buffer A will set his own event but wait for the B's event before continuing to the next subpass.
+	beginCommandBuffer(vk, *m_cmdBufferA, 0u);
+	beginCommandBuffer(vk, *m_cmdBufferB, 0u);
+		vk.cmdBeginRenderPass(*m_cmdBufferA, &renderPassBeginInfoA, VK_SUBPASS_CONTENTS_INLINE);
+		vk.cmdBindPipeline(*m_cmdBufferA, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipeline0);
+		vk.cmdBindVertexBuffers(*m_cmdBufferA, 0u, 1u, &m_vertexBuffer.get(), &vertexBufferOffset);
+		vk.cmdClearAttachments(*m_cmdBufferA, 1u, &clearAttachment, 1u, &clearRect);
+
+		vk.cmdBeginRenderPass(*m_cmdBufferB, &renderPassBeginInfoB, VK_SUBPASS_CONTENTS_INLINE);
+		vk.cmdBindPipeline(*m_cmdBufferB, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipeline0);
+		vk.cmdClearAttachments(*m_cmdBufferB, 1u, &clearAttachment, 1u, &clearRect);
+		vk.cmdNextSubpass(*m_cmdBufferB, VK_SUBPASS_CONTENTS_INLINE);
+
+		vk.cmdNextSubpass(*m_cmdBufferA, VK_SUBPASS_CONTENTS_INLINE);
+		vk.cmdBindPipeline(*m_cmdBufferA, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipeline1);
+		vk.cmdBindVertexBuffers(*m_cmdBufferA, 0u, 1u, &m_vertexBuffer.get(), &vertexBufferOffset);
+		vk.cmdDraw(*m_cmdBufferA, 4u, 1u, 0u, 0u);
+
+		vertexBufferOffset = 8 * sizeof(Vertex);
+		vk.cmdBindPipeline(*m_cmdBufferB, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipeline1);
+		vk.cmdBindVertexBuffers(*m_cmdBufferB, 0u, 1u, &m_vertexBuffer.get(), &vertexBufferOffset);
+		vk.cmdDraw(*m_cmdBufferB, 4u, 1u, 0u, 0u);
+		vk.cmdNextSubpass(*m_cmdBufferB, VK_SUBPASS_CONTENTS_INLINE);
+
+		vertexBufferOffset = 0u;
+		vk.cmdNextSubpass(*m_cmdBufferA, VK_SUBPASS_CONTENTS_INLINE);
+		vk.cmdBindPipeline(*m_cmdBufferA, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipeline2);
+		vk.cmdBindVertexBuffers(*m_cmdBufferA, 0u, 1u, &m_vertexBuffer.get(), &vertexBufferOffset);
+		vk.cmdDraw(*m_cmdBufferA, 4u, 1u, 4u, 0u);
+
+		vertexBufferOffset = 8 * sizeof(Vertex);
+		vk.cmdBindPipeline(*m_cmdBufferB, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipeline2);
+		vk.cmdDraw(*m_cmdBufferB, 4u, 1u, 4u, 0u);
+		vk.cmdEndRenderPass(*m_cmdBufferB);
+		vk.cmdEndRenderPass(*m_cmdBufferA);
+	endCommandBuffer(vk, *m_cmdBufferA);
+	endCommandBuffer(vk, *m_cmdBufferB);
+}
+
+tcu::TestStatus	MultipleSubpassesMultipleCommandBuffersTestInstance::iterate (void)
+{
+	const DeviceInterface&	vk					= m_context.getDeviceInterface();
+	const VkDevice			vkDevice			= m_context.getDevice();
+	const VkQueue			queue				= m_context.getUniversalQueue();
+	const deUint32			queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+	SimpleAllocator			allocator			(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+
+	{
+		const Unique<VkFence>				fence				(createFence(vk, vkDevice));
+		std::vector<VkCommandBuffer>	commandBuffers;
+		commandBuffers.emplace_back(m_cmdBufferA.get());
+		commandBuffers.emplace_back(m_cmdBufferB.get());
+
+		const VkSubmitInfo		submitInfo				=
+		{
+			VK_STRUCTURE_TYPE_SUBMIT_INFO,						// VkStructureType				sType;
+			DE_NULL,											// const void*					pNext;
+			0u,													// deUint32						waitSemaphoreCount;
+			DE_NULL,											// const VkSemaphore*			pWaitSemaphores;
+			(const VkPipelineStageFlags*)DE_NULL,				// const VkPipelineStageFlags*	pWaitDstStageMask;
+			static_cast<deUint32>(commandBuffers.size()),		// deUint32						commandBufferCount;
+			commandBuffers.data(),								// const VkCommandBuffer*		pCommandBuffers;
+			0u,													// deUint32						signalSemaphoreCount;
+			DE_NULL,											// const VkSemaphore*			pSignalSemaphores;
+		};
+
+		VK_CHECK(vk.queueSubmit(queue, 1u, &submitInfo, *fence));
+		VK_CHECK(vk.waitForFences(vkDevice, 1u, &fence.get(), DE_TRUE, ~0ull));
+	}
+
+	// XXX: Add code for image verification for both color attachments
+	{
+		// Colors to compare to.
+		const tcu::Vec4			red			= {1.0f, 0.0f, 0.0f, 1.0f};
+		const tcu::Vec4			green		= {0.0f, 1.0f, 0.0f, 1.0f};
+		const tcu::Vec4			blue		= {0.0f, 0.0f, 1.0f, 1.0f};
+		const tcu::Vec4			yellow		= {1.0f, 1.0f, 0.0f, 1.0f};
+
+		// Read result images.
+		de::MovePtr<tcu::TextureLevel> imagePixelsA = pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *m_colorImageA, VK_FORMAT_R32G32B32A32_SFLOAT, m_renderSize);
+		de::MovePtr<tcu::TextureLevel> imagePixelsB = pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *m_colorImageB, VK_FORMAT_R32G32B32A32_SFLOAT, m_renderSize);
+
+		// Verify pixel colors match.
+		const tcu::ConstPixelBufferAccess&	imageAccessA		= imagePixelsA->getAccess();
+		const tcu::ConstPixelBufferAccess&	imageAccessB		= imagePixelsB->getAccess();
+
+
+		tcu::TextureLevel	referenceImageA(mapVkFormat(VK_FORMAT_R32G32B32A32_SFLOAT), m_renderSize.x(), m_renderSize.y());
+		tcu::TextureLevel	referenceImageB(mapVkFormat(VK_FORMAT_R32G32B32A32_SFLOAT), m_renderSize.x(), m_renderSize.y());
+
+		tcu::clear(tcu::getSubregion(referenceImageA.getAccess(), 0u, 0u,
+									 imageAccessA.getWidth() / 2, imageAccessA.getHeight()),
+					   red);
+		tcu::clear(tcu::getSubregion(referenceImageA.getAccess(), imageAccessA.getWidth() / 2, 0u,
+									 imageAccessA.getWidth() / 2, imageAccessA.getHeight()),
+				   green);
+
+		if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparison", referenceImageA.getAccess(), imageAccessA, tcu::Vec4(0.02f), tcu::COMPARE_LOG_RESULT))
+			TCU_FAIL("[A] Rendered image is not correct");
+
+		tcu::clear(tcu::getSubregion(referenceImageB.getAccess(), 0u, 0u,
+									 imageAccessB.getWidth() / 2, imageAccessB.getHeight()),
+					   blue);
+		tcu::clear(tcu::getSubregion(referenceImageB.getAccess(), imageAccessB.getWidth() / 2, 0u,
+									 imageAccessA.getWidth() / 2, imageAccessB.getHeight()),
+				   yellow);
+
+		if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparison", referenceImageB.getAccess(), imageAccessB, tcu::Vec4(0.02f), tcu::COMPARE_LOG_RESULT))
+			TCU_FAIL("[B] Rendered image is not correct");
+
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+} // anonymous
+
+tcu::TestCaseGroup* createRenderPassMultipleSubpassesMultipleCommandBuffersTests (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup>	testGroup (new tcu::TestCaseGroup(testCtx, "multiple_subpasses_multiple_command_buffers", "Multiple subpasses multiple command buffers"));
+
+	testGroup->addChild(new MultipleSubpassesMultipleCommandBuffersTest(testCtx, "test", ""));
+
+	return testGroup.release();
+}
+
+} // renderpass
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.hpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.hpp
new file mode 100644
index 0000000..3fd887a
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTRENDERPASSMULTIPLESUBPASSESMULTIPLECOMMANDBUFFERSTESTS_HPP
+#define _VKTRENDERPASSMULTIPLESUBPASSESMULTIPLECOMMANDBUFFERSTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Tests vkCmdClearAttachments with unused attachments.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTestCase.hpp"
+#include "vktRenderPassTestsUtil.hpp"
+
+namespace vkt
+{
+namespace renderpass
+{
+
+tcu::TestCaseGroup* createRenderPassMultipleSubpassesMultipleCommandBuffersTests (tcu::TestContext& testCtx);
+
+} // renderpass
+} // vkt
+
+#endif // _VKTRENDERPASSMULTIPLESUBPASSESMULTIPLECOMMANDBUFFERSTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp
index a23b6f7..44cf7b2 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp
@@ -34,6 +34,7 @@
 #include "vktRenderPassDepthStencilResolveTests.hpp"
 #include "vktRenderPassUnusedAttachmentSparseFillingTests.hpp"
 #include "vktRenderPassFragmentDensityMapTests.hpp"
+#include "vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.hpp"
 
 #include "vktTestCaseUtil.hpp"
 #include "vktTestGroupUtil.hpp"
@@ -6995,6 +6996,7 @@
 
 	renderpassTests->addChild(suballocationTestGroup.release());
 	renderpassTests->addChild(dedicatedAllocationTestGroup.release());
+	renderpassTests->addChild(createRenderPassMultipleSubpassesMultipleCommandBuffersTests(testCtx));
 
 	if (renderPassType != RENDERPASS_TYPE_LEGACY)
 	{
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
index 903e9ba..ed567c4 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
@@ -45,6 +45,7 @@
 #include "tcuVector.hpp"
 #include "tcuMatrix.hpp"
 #include "tcuResultCollector.hpp"
+#include "tcuMaybe.hpp"
 
 #include "gluContextInfo.hpp"
 #include "gluVarType.hpp"
@@ -57,6 +58,7 @@
 #include <iostream>
 #include <map>
 #include <utility>
+#include <limits>
 
 // Uncomment this to get evaluation trace dumps to std::cerr
 // #define GLS_ENABLE_TRACE
@@ -78,6 +80,11 @@
 typedef Vector<deFloat16, 3>	Vec3_16Bit;
 typedef Vector<deFloat16, 4>	Vec4_16Bit;
 
+typedef Vector<double, 1>		Vec1_64Bit;
+typedef Vector<double, 2>		Vec2_64Bit;
+typedef Vector<double, 3>		Vec3_64Bit;
+typedef Vector<double, 4>		Vec4_64Bit;
+
 enum
 {
 	// Computing reference intervals can take a non-trivial amount of time, especially on
@@ -115,38 +122,42 @@
 using glu::DataType;
 using glu::ShaderType;
 
-enum Extension16BitStorageFeatureBits
+enum PrecisionTestFeatureBits
 {
-	EXT16BITSTORAGEFEATURES_NO_EXTENSION			= 0u,
-	EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK	= (1u << 1),
-	EXT16BITSTORAGEFEATURES_UNIFORM					= (1u << 2),
-	EXT16BITSTORAGEFEATURES_PUSH_CONSTANT			= (1u << 3),
-	EXT16BITSTORAGEFEATURES_INPUT_OUTPUT			= (1u << 4),
-	EXTSHADER_FLOAT16_INT8							= (1u << 5),
+	PRECISION_TEST_FEATURES_NONE									= 0u,
+	PRECISION_TEST_FEATURES_16BIT_BUFFER_ACCESS						= (1u << 1),
+	PRECISION_TEST_FEATURES_16BIT_UNIFORM_AND_STORAGE_BUFFER_ACCESS	= (1u << 2),
+	PRECISION_TEST_FEATURES_16BIT_PUSH_CONSTANT						= (1u << 3),
+	PRECISION_TEST_FEATURES_16BIT_INPUT_OUTPUT						= (1u << 4),
+	PRECISION_TEST_FEATURES_16BIT_SHADER_FLOAT						= (1u << 5),
+	PRECISION_TEST_FEATURES_64BIT_SHADER_FLOAT						= (1u << 6),
 };
-typedef deUint32 Extension16BitStorageFeatures;
+typedef deUint32 PrecisionTestFeatures;
 
 
 void areFeaturesSupported (const Context& context, deUint32 toCheck)
 {
-	if (toCheck == EXT16BITSTORAGEFEATURES_NO_EXTENSION) return;
+	if (toCheck == PRECISION_TEST_FEATURES_NONE) return;
 
 	const vk::VkPhysicalDevice16BitStorageFeatures& extensionFeatures = context.get16BitStorageFeatures();
 
-	if ((toCheck & EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK) != 0 && extensionFeatures.storageBuffer16BitAccess == VK_FALSE)
+	if ((toCheck & PRECISION_TEST_FEATURES_16BIT_BUFFER_ACCESS) != 0 && extensionFeatures.storageBuffer16BitAccess == VK_FALSE)
 		TCU_THROW(NotSupportedError, "Requested 16bit storage features not supported");
 
-	if ((toCheck & EXT16BITSTORAGEFEATURES_UNIFORM) != 0 && extensionFeatures.uniformAndStorageBuffer16BitAccess == VK_FALSE)
+	if ((toCheck & PRECISION_TEST_FEATURES_16BIT_UNIFORM_AND_STORAGE_BUFFER_ACCESS) != 0 && extensionFeatures.uniformAndStorageBuffer16BitAccess == VK_FALSE)
 		TCU_THROW(NotSupportedError, "Requested 16bit storage features not supported");
 
-	if ((toCheck & EXT16BITSTORAGEFEATURES_PUSH_CONSTANT) != 0 && extensionFeatures.storagePushConstant16 == VK_FALSE)
+	if ((toCheck & PRECISION_TEST_FEATURES_16BIT_PUSH_CONSTANT) != 0 && extensionFeatures.storagePushConstant16 == VK_FALSE)
 		TCU_THROW(NotSupportedError, "Requested 16bit storage features not supported");
 
-	if ((toCheck & EXT16BITSTORAGEFEATURES_INPUT_OUTPUT) != 0 && extensionFeatures.storageInputOutput16 == VK_FALSE)
+	if ((toCheck & PRECISION_TEST_FEATURES_16BIT_INPUT_OUTPUT) != 0 && extensionFeatures.storageInputOutput16 == VK_FALSE)
 		TCU_THROW(NotSupportedError, "Requested 16bit storage features not supported");
 
-	if (!context.getShaderFloat16Int8Features().shaderFloat16)
+	if ((toCheck & PRECISION_TEST_FEATURES_16BIT_SHADER_FLOAT) != 0 && context.getShaderFloat16Int8Features().shaderFloat16 == VK_FALSE)
 		TCU_THROW(NotSupportedError, "Requested 16-bit floats (halfs) are not supported in shader code");
+
+	if ((toCheck & PRECISION_TEST_FEATURES_64BIT_SHADER_FLOAT) != 0 && context.getDeviceFeatures().shaderFloat64 == VK_FALSE)
+		TCU_THROW(NotSupportedError, "Requested 64-bit floats are not supported in shader code");
 }
 
 /*--------------------------------------------------------------------*//*!
@@ -281,10 +292,10 @@
 }
 
 //! Returns true iff every element of `ival` contains the corresponding element of `value`.
-template <typename T>
-bool contains (const typename Traits<T>::IVal& ival, const T& value, bool is16Bit = false)
+template <typename T, typename U = Void>
+bool contains (const typename Traits<T>::IVal& ival, const T& value, bool is16Bit = false, const tcu::Maybe<U>& modularDivisor = tcu::nothing<U>())
 {
-	return Traits<T>::doContains(ival, value, is16Bit);
+	return Traits<T>::doContains(ival, value, is16Bit, modularDivisor);
 }
 
 //! Print out an interval with the precision of `fmt`.
@@ -422,6 +433,20 @@
 	return oss.str();
 }
 
+template <typename T>
+void printValue64 (const FloatFormat& fmt, const T& value, ostream& os)
+{
+	Traits<T>::doPrintValue64(fmt, value, os);
+}
+
+template <typename T>
+string value64ToString (const FloatFormat& fmt, const T& val)
+{
+	ostringstream oss;
+	printValue64(fmt, val, oss);
+	return oss.str();
+}
+
 //! Approximate `value` elementwise to the float precision defined in `fmt`.
 //! The resulting interval might not be a singleton if rounding in both
 //! directions is allowed.
@@ -438,6 +463,36 @@
 	return Traits<T>::doConvert(fmt, value);
 }
 
+// Matching input and output types. We may be in a modulo case and modularDivisor may have an actual value.
+template <typename T>
+bool intervalContains (const Interval& interval, T value, const tcu::Maybe<T>& modularDivisor)
+{
+	bool contained = interval.contains(value);
+
+	if (!contained && modularDivisor)
+	{
+		const T divisor = modularDivisor.get();
+
+		// In a modulo operation, if the calculated answer contains the divisor, allow exactly 0.0 as a replacement. Alternatively,
+		// if the calculated answer contains 0.0, allow exactly the divisor as a replacement.
+		if (interval.contains(static_cast<double>(divisor)))
+			contained |= (value == 0.0);
+		if (interval.contains(0.0))
+			contained |= (value == divisor);
+	}
+	return contained;
+}
+
+// When the input and output types do not match, we are not in a real modulo operation. Do not take the divisor into account. This
+// version is provided for syntactical compatibility only.
+template <typename T, typename U>
+bool intervalContains (const Interval& interval, T value, const tcu::Maybe<U>& modularDivisor)
+{
+	DE_UNREF(modularDivisor);		// For release builds.
+	DE_ASSERT(!modularDivisor);
+	return interval.contains(value);
+}
+
 //! Common traits for scalar types.
 template <typename T>
 struct ScalarTraits
@@ -533,16 +588,74 @@
 		os << fmt.floatToHex(value);
 	}
 
-	static bool			doContains		(const Interval& a, const float& value, bool is16Bit = false)
+	static void			doPrintValue64	(const FloatFormat&	fmt,
+										 const float&		value,
+										 ostream&			os)
+	{
+		os << fmt.floatToHex(value);
+	}
+
+	template <typename U>
+	static bool			doContains		(const Interval& a, const float& value, bool is16Bit, const tcu::Maybe<U>& modularDivisor)
 	{
 		if(is16Bit)
 		{
+			// Note: for deFloat16s packed in 32 bits, the original divisor is provided as a float to the shader in the input
+			// buffer, so U is also float here and we call the right interlvalContains() version.
 			const deUint32 iRep = reinterpret_cast<const deUint32&>(value);
 			float res0 = deFloat16To32((deFloat16)(iRep & 0xFFFF));
 			float res1 = deFloat16To32((deFloat16)(iRep >> 16));
-			return a.contains(double(res0)) && (res1 == -1.0);
+			return intervalContains(a, res0, modularDivisor) && (res1 == -1.0);
 		}
-		return a.contains(value);
+		return intervalContains(a, value, modularDivisor);
+	}
+};
+
+template<>
+struct Traits<double> : ScalarTraits<double>
+{
+	static void			doPrintIVal		(const FloatFormat&	fmt,
+										 const Interval&	ival,
+										 ostream&			os)
+	{
+		os << fmt.intervalToHex(ival);
+	}
+
+	static void			doPrintValue16	(const FloatFormat&	fmt,
+										 const double&		value,
+										 ostream&			os)
+	{
+		const deUint64 iRep = reinterpret_cast<const deUint64&>(value);
+		double byte0 = deFloat16To64((deFloat16)((iRep      ) & 0xffff));
+		double byte1 = deFloat16To64((deFloat16)((iRep >> 16) & 0xffff));
+		double byte2 = deFloat16To64((deFloat16)((iRep >> 32) & 0xffff));
+		double byte3 = deFloat16To64((deFloat16)((iRep >> 48) & 0xffff));
+		os << fmt.floatToHex(byte0) << " " << fmt.floatToHex(byte1) << " " << fmt.floatToHex(byte2) << " " << fmt.floatToHex(byte3);
+	}
+
+	static void			doPrintValue32	(const FloatFormat&	fmt,
+										 const double&		value,
+										 ostream&			os)
+	{
+		const deUint64 iRep = reinterpret_cast<const deUint64&>(value);
+		double res0 = static_cast<double>((float)((iRep      ) & 0xffffffff));
+		double res1 = static_cast<double>((float)((iRep >> 32) & 0xffffffff));
+		os << fmt.floatToHex(res0) << " " << fmt.floatToHex(res1);
+	}
+
+	static void			doPrintValue64	(const FloatFormat&	fmt,
+										 const double&		value,
+										 ostream&			os)
+	{
+		os << fmt.floatToHex(value);
+	}
+
+	template <class U>
+	static bool			doContains		(const Interval& a, const double& value, bool is16Bit, const tcu::Maybe<U>& modularDivisor)
+	{
+		DE_UNREF(is16Bit);
+		DE_ASSERT(!is16Bit);
+		return intervalContains(a, value, modularDivisor);
 	}
 };
 
@@ -571,11 +684,30 @@
 		os << fmt.floatToHex(static_cast<double>(res0));
 	}
 
-	static bool			doContains		(const Interval& a, const deFloat16& value, bool is16Bit = false)
+	static void			doPrintValue64	(const FloatFormat&	fmt,
+										 const deFloat16&	value,
+										 ostream&			os)
+	{
+		const double res0 = deFloat16To64(value);
+		os << fmt.floatToHex(res0);
+	}
+
+	// When the value and divisor are both deFloat16, convert both to float to call the right intervalContains version.
+	static bool			doContains		(const Interval& a, const deFloat16& value, bool is16Bit, const tcu::Maybe<deFloat16>& modularDivisor)
 	{
 		DE_UNREF(is16Bit);
 		float res0 = deFloat16To32(value);
-		return a.contains(double(res0));
+		const tcu::Maybe<float> convertedDivisor = (modularDivisor ? tcu::just(deFloat16To32(modularDivisor.get())) : tcu::nothing<float>());
+		return intervalContains(a, res0, convertedDivisor);
+	}
+
+	// If the types don't match we should not be in a modulo operation, so no conversion should take place.
+	template <class U>
+	static bool			doContains		(const Interval& a, const deFloat16& value, bool is16Bit, const tcu::Maybe<U>& modularDivisor)
+	{
+		DE_UNREF(is16Bit);
+		float res0 = deFloat16To32(value);
+		return intervalContains(a, res0, modularDivisor);
 	}
 };
 
@@ -596,6 +728,13 @@
 		os << (value != 0.0f ? "true" : "false");
 	}
 
+	static void		doPrintValue64	(const			FloatFormat&,
+									 const float&	value,
+									 ostream&		os)
+	{
+		os << (value != 0.0f ? "true" : "false");
+	}
+
 	static void			doPrintIVal		(const FloatFormat&,
 										 const Interval&	ival,
 										 ostream&			os)
@@ -630,6 +769,13 @@
 		os << value;
 	}
 
+	static void		doPrintValue64		(const FloatFormat&,
+										 const int&			value,
+										 ostream&			os)
+	{
+		os << value;
+	}
+
 	static void			doPrintIVal		(const FloatFormat&,
 										 const Interval&	ival,
 										 ostream&			os)
@@ -637,10 +783,11 @@
 		os << "[" << int(ival.lo()) << ", " << int(ival.hi()) << "]";
 	}
 
-	static bool			doContains		(const Interval& a, const int& value, bool is16Bit)
+	template <typename U>
+	static bool			doContains		(const Interval& a, const int& value, bool is16Bit, const tcu::Maybe<U>& modularDivisor)
 	{
 		DE_UNREF(is16Bit);
-		return a.contains(double(value));
+		return intervalContains(a, value, modularDivisor);
 	}
 };
 
@@ -672,11 +819,32 @@
 		return ret;
 	}
 
-	static bool			doContains		(const IVal& ival, const T& value, bool is16Bit = false)
+	// When the input and output types match, we may be in a modulo operation. If the divisor is provided, use each of its
+	// components to determine if the obtained result is fine.
+	static bool			doContains		(const IVal& ival, const T& value, bool is16Bit, const tcu::Maybe<T>& modularDivisor)
+	{
+		using DivisorElement = typename T::Element;
+
+		for (int ndx = 0; ndx < T::SIZE; ++ndx)
+		{
+			const tcu::Maybe<DivisorElement> divisorElement = (modularDivisor ? tcu::just((*modularDivisor)[ndx]) : tcu::nothing<DivisorElement>());
+			if (!contains(ival[ndx], value[ndx], is16Bit, divisorElement))
+				return false;
+		}
+
+		return true;
+	}
+
+	// When the input and output types do not match we should not be in a modulo operation. This version is provided for syntactical
+	// compatibility.
+	template <typename U>
+	static bool			doContains		(const IVal& ival, const T& value, bool is16Bit, const tcu::Maybe<U>& modularDivisor)
 	{
 		for (int ndx = 0; ndx < T::SIZE; ++ndx)
-			if (!contains(ival[ndx], value[ndx], is16Bit))
+		{
+			if (!contains(ival[ndx], value[ndx], is16Bit, modularDivisor))
 				return false;
+		}
 
 		return true;
 	}
@@ -726,6 +894,21 @@
 		os << ")";
 	}
 
+	static void			doPrintValue64	(const FloatFormat& fmt, const T& value, ostream& os)
+	{
+		os << dataTypeNameOf<T>() << "(";
+
+		for (int ndx = 0; ndx < T::SIZE; ++ndx)
+		{
+			if (ndx > 0)
+				os << ", ";
+
+			printValue64<Element>(fmt, value[ndx], os);
+		}
+
+		os << ")";
+	}
+
 	static IVal			doConvert		(const FloatFormat& fmt, const IVal& value)
 	{
 		IVal ret;
@@ -769,7 +952,8 @@
 	static Void	doMakeIVal		(const Void& value)										{ return value; }
 	static Void	doUnion			(const Void&, const Void&)								{ return Void(); }
 	static bool	doContains		(const Void&, Void)										{ return true; }
-	static bool	doContains		(const Void&, const Void& value, bool is16Bit)			{ DE_UNREF(value); DE_UNREF(is16Bit); return true; }
+	template <typename U>
+	static bool	doContains		(const Void&, const Void& value, bool is16Bit, const tcu::Maybe<U>& modularDivisor) { DE_UNREF(value); DE_UNREF(is16Bit); DE_UNREF(modularDivisor); return true; }
 	static Void	doRound			(const FloatFormat&, const Void& value)					{ return value; }
 	static Void	doConvert		(const FloatFormat&, const Void& value)					{ return value; }
 
@@ -783,6 +967,11 @@
 		os << "()";
 	}
 
+	static void	doPrintValue64	(const FloatFormat&, const Void&, ostream& os)
+	{
+		os << "()";
+	}
+
 	static void	doPrintIVal		(const FloatFormat&, const Void&, ostream& os)
 	{
 		os << "()";
@@ -799,6 +988,7 @@
 // This is a kludge that is only needed to get the ExprP::operator[] syntactic sugar to work.
 template <typename T>	struct ElementOf		{ typedef	typename T::Element	Element; };
 template <>				struct ElementOf<float>	{ typedef	void				Element; };
+template <>				struct ElementOf<double>{ typedef	void				Element; };
 template <>				struct ElementOf<bool>	{ typedef	void				Element; };
 template <>				struct ElementOf<int>	{ typedef	void				Element; };
 
@@ -1296,6 +1486,8 @@
 											  const ExprP<float>&						arg1);
 ExprP<deFloat16>					operator+ (const ExprP<deFloat16>&					arg0,
 											  const ExprP<deFloat16>&					arg1);
+ExprP<double>						operator+ (const ExprP<double>&						arg0,
+											  const ExprP<double>&						arg1);
 template <typename T>
 ExprP<T>							operator- (const ExprP<T>& arg0);
 template <typename T>
@@ -1308,6 +1500,8 @@
 											  const ExprP<float>&						arg1);
 ExprP<deFloat16>					operator* (const ExprP<deFloat16>&					arg0,
 											   const ExprP<deFloat16>&					arg1);
+ExprP<double>						operator* (const ExprP<double>&						arg0,
+											  const ExprP<double>&						arg1);
 template <typename T>
 ExprP<T>							operator/ (const ExprP<T>&							arg0,
 											  const ExprP<T>&							arg1);
@@ -1337,6 +1531,9 @@
 template<int Rows, int Cols>
 ExprP<Matrix<deFloat16, Rows, Cols> >	operator+ (const ExprP<Matrix<deFloat16, Rows, Cols> >&	left,
 												   const ExprP<Matrix<deFloat16, Rows, Cols> >&	right);
+template<int Rows, int Cols>
+ExprP<Matrix<double, Rows, Cols> >	operator+ (const ExprP<Matrix<double, Rows, Cols> >&	left,
+											   const ExprP<Matrix<double, Rows, Cols> >&	right);
 template<typename T, int Rows, int Cols>
 ExprP<Matrix<T, Rows, Cols> >	operator- (const ExprP<Matrix<T, Rows, Cols> >&	mat);
 
@@ -2044,11 +2241,12 @@
 //Proper parameters for template T
 //	Signature<float, float>		32bit tests
 //	Signature<float, deFloat16>	16bit tests
+//	Signature<double, double>	64bit tests
 template< class T>
 class FloatFunc1 : public PrimitiveFunc<T>
 {
 protected:
-		Interval			doApply			(const EvalContext& ctx, const Signature<float, float>::IArgs& iargs) const
+		Interval			doApply			(const EvalContext& ctx, const typename Signature<typename T::Ret, typename T::Arg0>::IArgs& iargs) const
 	{
 		return this->applyMonotone(ctx, iargs.a);
 	}
@@ -2062,7 +2260,7 @@
 													  point = this->applyPoint(ctx, arg0)));
 
 		ret |= innerExtrema(ctx, iarg0);
-		ret &= (this->getCodomain() | TCU_NAN);
+		ret &= (this->getCodomain(ctx) | TCU_NAN);
 
 		return ctx.format.convert(ret);
 	}
@@ -2085,7 +2283,7 @@
 		TCU_THROW(InternalError, "Cannot apply");
 	}
 
-	virtual Interval	getCodomain		(void) const
+	virtual Interval	getCodomain		(const EvalContext&) const
 	{
 		return Interval::unbounded(true);
 	}
@@ -2094,6 +2292,7 @@
 };
 
 /*Proper parameters for template T
+	Signature<double, double>	64bit tests
 	Signature<float, float>		32bit tests
 	Signature<float, deFloat16>	16bit tests*/
 template <class T>
@@ -2114,11 +2313,12 @@
 
 //<Signature<float, deFloat16, deFloat16> >
 //<Signature<float, float, float> >
+//<Signature<double, double, double> >
 template <class T>
 class FloatFunc2 : public PrimitiveFunc<T>
 {
 protected:
-	Interval			doApply			(const EvalContext&	ctx, const Signature<float, float, float>::IArgs& iargs) const
+	Interval			doApply			(const EvalContext&	ctx, const typename Signature<typename T::Ret, typename T::Arg0, typename T::Arg1>::IArgs& iargs) const
 	{
 		return this->applyMonotone(ctx, iargs.a, iargs.b);
 	}
@@ -2133,7 +2333,7 @@
 									 TCU_SET_INTERVAL(ret, point,
 													  point = this->applyPoint(ctx, x, y)));
 		reti |= innerExtrema(ctx, xi, yi);
-		reti &= (this->getCodomain() | TCU_NAN);
+		reti &= (this->getCodomain(ctx) | TCU_NAN);
 
 		return ctx.format.convert(reti);
 	}
@@ -2160,7 +2360,7 @@
 		TCU_THROW(InternalError, "Cannot apply");
 	}
 
-	virtual Interval	getCodomain		(void) const
+	virtual Interval	getCodomain		(const EvalContext&) const
 	{
 		return Interval::unbounded(true);
 	}
@@ -2250,7 +2450,7 @@
 class FloatFunc3 : public PrimitiveFunc<T>
 {
 protected:
-	Interval			doApply			(const EvalContext&	ctx, const Signature<float, float, float, float>::IArgs& iargs) const
+	Interval			doApply			(const EvalContext&	ctx, const typename Signature<typename T::Ret, typename T::Arg0, typename T::Arg1, typename T::Arg2>::IArgs& iargs) const
 	{
 		return this->applyMonotone(ctx, iargs.a, iargs.b, iargs.c);
 	}
@@ -2354,7 +2554,7 @@
 	string		getSymbol	(void) const						{ return "+"; }
 
 	Interval	doApply		(const EvalContext&	ctx,
-							 const Signature<float, float, float>::IArgs&		iargs) const
+							 const typename Signature<typename T::Ret, typename T::Arg0, typename T::Arg1>::IArgs& iargs) const
 	{
 		// Fast-path for common case
 		if (iargs.a.isOrdinary() && iargs.b.isOrdinary())
@@ -2379,7 +2579,7 @@
 	string		getName		(void) const									{ return "mul"; }
 	string		getSymbol	(void) const									{ return "*"; }
 
-	Interval	doApply		(const EvalContext&	ctx, const Signature<float, float, float>::IArgs& iargs) const
+	Interval	doApply		(const EvalContext&	ctx, const typename Signature<typename T::Ret, typename T::Arg0, typename T::Arg1>::IArgs& iargs) const
 	{
 		Interval a = iargs.a;
 		Interval b = iargs.b;
@@ -2396,15 +2596,15 @@
 			if (a.lo() >= 0 && b.lo() >= 0)
 			{
 				TCU_SET_INTERVAL_BOUNDS(ret, prod,
-										prod = iargs.a.lo() * iargs.b.lo(),
-										prod = iargs.a.hi() * iargs.b.hi());
+										prod = a.lo() * b.lo(),
+										prod = a.hi() * b.hi());
 				return ctx.format.convert(ctx.format.roundOut(ret, true));
 			}
 			if (a.lo() >= 0 && b.hi() <= 0)
 			{
 				TCU_SET_INTERVAL_BOUNDS(ret, prod,
-										prod = iargs.a.hi() * iargs.b.lo(),
-										prod = iargs.a.lo() * iargs.b.hi());
+										prod = a.hi() * b.lo(),
+										prod = a.lo() * b.hi());
 				return ctx.format.convert(ctx.format.roundOut(ret, true));
 			}
 		}
@@ -2431,7 +2631,7 @@
 	string		getName		(void) const				{ return "sub"; }
 	string		getSymbol	(void) const				{ return "-"; }
 
-	Interval	doApply		(const EvalContext&	ctx, const Signature<float, float, float>::IArgs& iargs) const
+	Interval	doApply		(const EvalContext&	ctx, const typename Signature<typename T::Ret, typename T::Arg0, typename T::Arg1>::IArgs& iargs) const
 	{
 		// Fast-path for common case
 		if (iargs.a.isOrdinary() && iargs.b.isOrdinary())
@@ -2542,7 +2742,7 @@
 		return x <= 0 ? TCU_NAN : ctx.format.ulp(ret, 2.0);
 	}
 
-	Interval	getCodomain	(void) const
+	Interval	getCodomain	(const EvalContext&) const
 	{
 		return Interval(0.0, TCU_INFINITY);
 	}
@@ -2557,7 +2757,7 @@
 				{}
 protected:
 	double		precision	(const EvalContext& ctx, double ret, double x) const;
-	Interval	getCodomain	(void) const
+	Interval	getCodomain	(const EvalContext&) const
 	{
 		return Interval(0.0, TCU_INFINITY);
 	}
@@ -2586,6 +2786,12 @@
 	return ctx.format.ulp(ret, 1.0 + 2.0 * deAbs(x));
 }
 
+template <>
+double ExpFunc <Signature<double, double> >::precision(const EvalContext& ctx, double ret, double x) const
+{
+	return ctx.format.ulp(ret, 1.0 + 2.0 * deAbs(x));
+}
+
 template <class T>
 class Exp2	: public ExpFunc<T>	{ public: Exp2 (void)	: ExpFunc<T>("exp2", deExp2) {} };
 template <class T>
@@ -2635,6 +2841,16 @@
 	return (0.5 <= x && x <= 2.0) ? deLdExp(1.0, -7) : ctx.format.ulp(ret, 3.0);
 }
 
+// Spec: "The precision of double-precision instructions is at least that of single precision."
+// Lets pick float high precision as a reference.
+template <>
+double LogFunc<Signature<double, double> >::precision(const EvalContext& ctx, double ret, double x) const
+{
+	if (x <= 0)
+		return TCU_NAN;
+	return (0.5 <= x && x <= 2.0) ? deLdExp(1.0, -21) : ctx.format.ulp(ret, 3.0);
+}
+
 template <class T>
 class Log2	: public LogFunc<T>		{ public: Log2	(void) : LogFunc<T>("log2", deLog2) {} };
 template <class T>
@@ -2646,6 +2862,9 @@
 ExprP<deFloat16> log2	(const ExprP<deFloat16>& x)	{ return app<Log2< Signature<deFloat16, deFloat16> > >(x); }
 ExprP<deFloat16> log	(const ExprP<deFloat16>& x)	{ return app<Log< Signature<deFloat16, deFloat16> > >(x); }
 
+ExprP<double> log2	(const ExprP<double>& x)	{ return app<Log2< Signature<double, double> > >(x); }
+ExprP<double> log	(const ExprP<double>& x)	{ return app<Log< Signature<double, double> > >(x); }
+
 #define DEFINE_CONSTRUCTOR1(CLASS, TRET, NAME, T0) \
 ExprP<TRET> NAME (const ExprP<T0>& arg0) { return app<CLASS>(arg0); }
 
@@ -2665,6 +2884,9 @@
 };																			\
 DEFINE_CONSTRUCTOR1(CLASS, TRET, NAME, T0)
 
+#define DEFINE_DERIVED_DOUBLE1(CLASS, NAME, ARG0, EXPANSION) \
+	DEFINE_DERIVED1(CLASS, double, NAME, double, ARG0, EXPANSION)
+
 #define DEFINE_DERIVED_FLOAT1(CLASS, NAME, ARG0, EXPANSION) \
 	DEFINE_DERIVED1(CLASS, float, NAME, float, ARG0, EXPANSION)
 
@@ -2692,6 +2914,9 @@
 #define DEFINE_DERIVED_FLOAT1_INPUTRANGE(CLASS, NAME, ARG0, EXPANSION, INTERVAL) \
 	DEFINE_DERIVED1_INPUTRANGE(CLASS, float, NAME, float, ARG0, EXPANSION, INTERVAL)
 
+#define DEFINE_DERIVED_DOUBLE1_INPUTRANGE(CLASS, NAME, ARG0, EXPANSION, INTERVAL) \
+	DEFINE_DERIVED1_INPUTRANGE(CLASS, double, NAME, double, ARG0, EXPANSION, INTERVAL)
+
 #define DEFINE_DERIVED_FLOAT1_16BIT(CLASS, NAME, ARG0, EXPANSION) \
 	DEFINE_DERIVED1(CLASS, deFloat16, NAME, deFloat16, ARG0, EXPANSION)
 
@@ -2725,6 +2950,9 @@
 #define DEFINE_DERIVED2(CLASS, TRET, NAME, T0, Arg0, T1, Arg1, EXPANSION) \
 	DEFINE_CASED_DERIVED2(CLASS, TRET, NAME, T0, Arg0, T1, Arg1, EXPANSION, SPIRV_CASETYPE_NONE)
 
+#define DEFINE_DERIVED_DOUBLE2(CLASS, NAME, Arg0, Arg1, EXPANSION)		\
+	DEFINE_DERIVED2(CLASS, double, NAME, double, Arg0, double, Arg1, EXPANSION)
+
 #define DEFINE_DERIVED_FLOAT2(CLASS, NAME, Arg0, Arg1, EXPANSION)		\
 	DEFINE_DERIVED2(CLASS, float, NAME, float, Arg0, float, Arg1, EXPANSION)
 
@@ -2763,6 +2991,9 @@
 };																				\
 DEFINE_CONSTRUCTOR3(CLASS, TRET, NAME, T0, T1, T2)
 
+#define DEFINE_DERIVED_DOUBLE3(CLASS, NAME, ARG0, ARG1, ARG2, EXPANSION)			\
+	DEFINE_DERIVED3(CLASS, double, NAME, double, ARG0, double, ARG1, double, ARG2, EXPANSION)
+
 #define DEFINE_DERIVED_FLOAT3(CLASS, NAME, ARG0, ARG1, ARG2, EXPANSION)			\
 	DEFINE_DERIVED3(CLASS, float, NAME, float, ARG0, float, ARG1, float, ARG2, EXPANSION)
 
@@ -2778,15 +3009,20 @@
 
 typedef	 InverseSqrt< Signature<deFloat16, deFloat16> >	InverseSqrt16Bit;
 typedef	 InverseSqrt< Signature<float, float> >			InverseSqrt32Bit;
+typedef InverseSqrt< Signature<double, double> >		InverseSqrt64Bit;
 
 DEFINE_DERIVED_FLOAT1(Sqrt32Bit,		sqrt,		x,		constant(1.0f) / app<InverseSqrt32Bit>(x));
 DEFINE_DERIVED_FLOAT1_16BIT(Sqrt16Bit,	sqrt,		x,		constant((deFloat16)FLOAT16_1_0) / app<InverseSqrt16Bit>(x));
+DEFINE_DERIVED_DOUBLE1(Sqrt64Bit,		sqrt,		x,		constant(1.0) / app<InverseSqrt64Bit>(x));
 DEFINE_DERIVED_FLOAT2(Pow,				pow,		x,	y,	exp2<float>(y * log2(x)));
 DEFINE_DERIVED_FLOAT2_16BIT(Pow16,		pow,		x,	y,	exp2<deFloat16>(y * log2(x)));
+DEFINE_DERIVED_DOUBLE2(Pow64,			pow,		x,	y,	exp2<double>(y * log2(x)));
 DEFINE_DERIVED_FLOAT1(Radians,			radians,	d,		(constant(DE_PI) / constant(180.0f)) * d);
 DEFINE_DERIVED_FLOAT1_16BIT(Radians16,	radians,	d,		(constant((deFloat16)DE_PI_16BIT) / constant((deFloat16)FLOAT16_180_0)) * d);
+DEFINE_DERIVED_DOUBLE1(Radians64,		radians,	d,		(constant((double)(DE_PI)) / constant(180.0)) * d);
 DEFINE_DERIVED_FLOAT1(Degrees,			degrees,	r,		(constant(180.0f) / constant(DE_PI)) * r);
 DEFINE_DERIVED_FLOAT1_16BIT(Degrees16,	degrees,	r,		(constant((deFloat16)FLOAT16_180_0) / constant((deFloat16)DE_PI_16BIT)) * r);
+DEFINE_DERIVED_DOUBLE1(Degrees64,		degrees,	r,		(constant(180.0) / constant((double)(DE_PI))) * r);
 
 /*Proper parameters for template T
 	Signature<float, float>		32bit tests
@@ -2838,7 +3074,7 @@
 		return Interval();
 	}
 
-	Interval	getCodomain				(void) const
+	Interval	getCodomain				(const EvalContext&) const
 	{
 		// Ensure that result is always within [-1, 1], or NaN (for +-inf)
 		return Interval(-1.0, 1.0) | TCU_NAN;
@@ -2869,6 +3105,14 @@
 	return Interval(false, -DE_PI_DOUBLE, DE_PI_DOUBLE);
 }
 
+//Only -DE_PI_DOUBLE, DE_PI_DOUBLE input range
+template<>
+Interval TrigFunc<Signature<double, double> >::getInputRange(const bool is16bit) const
+{
+	DE_UNREF(is16bit);
+	return Interval(false, -DE_PI_DOUBLE, DE_PI_DOUBLE);
+}
+
 template<>
 double TrigFunc<Signature<float, float> >::precision(const EvalContext& ctx, double ret, double arg) const
 {
@@ -2913,6 +3157,23 @@
 	return deLdExp(1.0, -7);
 }
 
+// Spec: "The precision of double-precision instructions is at least that of single precision."
+// Lets pick float high precision as a reference.
+template<>
+double TrigFunc<Signature<double, double> >::precision(const EvalContext& ctx, double ret, double arg) const
+{
+	DE_UNREF(ctx);
+	DE_UNREF(ret);
+	if (-DE_PI_DOUBLE <= arg && arg <= DE_PI_DOUBLE)
+		return deLdExp(1.0, -11);
+	else
+	{
+		// "larger otherwise", let's pick |x| * 2^-12 , which is slightly over
+		// 2^-11 at x == pi.
+		return deLdExp(deAbs(arg), -12);
+	}
+}
+
 /*Proper parameters for template T
 	Signature<float, float>		32bit tests
 	Signature<float, deFloat16>	16bit tests*/
@@ -2928,6 +3189,7 @@
 
 ExprP<float> sin (const ExprP<float>& x) { return app<Sin<Signature<float, float> > >(x); }
 ExprP<deFloat16> sin (const ExprP<deFloat16>& x) { return app<Sin<Signature<deFloat16, deFloat16> > >(x); }
+ExprP<double> sin (const ExprP<double>& x) { return app<Sin<Signature<double, double> > >(x); }
 
 template <class T>
 class Cos : public TrigFunc<T>
@@ -2941,9 +3203,11 @@
 
 ExprP<float> cos (const ExprP<float>& x) { return app<Cos<Signature<float, float> > >(x); }
 ExprP<deFloat16> cos (const ExprP<deFloat16>& x) { return app<Cos<Signature<deFloat16, deFloat16> > >(x); }
+ExprP<double> cos (const ExprP<double>& x) { return app<Cos<Signature<double, double> > >(x); }
 
 DEFINE_DERIVED_FLOAT1_INPUTRANGE(Tan, tan, x, sin(x) * (constant(1.0f) / cos(x)), Interval(false, -DE_PI_DOUBLE, DE_PI_DOUBLE));
 DEFINE_DERIVED_FLOAT1_INPUTRANGE_16BIT(Tan16Bit, tan, x, sin(x) * (constant((deFloat16)FLOAT16_1_0) / cos(x)), Interval(false, -DE_PI_DOUBLE, DE_PI_DOUBLE));
+DEFINE_DERIVED_DOUBLE1_INPUTRANGE(Tan64Bit, tan, x, sin(x) * (constant(1.0) / cos(x)), Interval(false, -DE_PI_DOUBLE, DE_PI_DOUBLE));
 
 template <class T>
 class ATan : public CFloatFunc1<T>
@@ -2952,16 +3216,18 @@
 			ATan		(void) : CFloatFunc1<T>	("atan", deAtanOver) {}
 
 protected:
-	double	precision	(const EvalContext& ctx, double ret, double x) const
+	double	precision	(const EvalContext& ctx, double ret, double) const
 	{
-		if (x < -DE_PI_DOUBLE * 0.5 || x > DE_PI_DOUBLE * 0.5)
-			return TCU_NAN;
-
 		if (ctx.floatPrecision == glu::PRECISION_HIGHP)
 			return ctx.format.ulp(ret, 4096.0);
 		else
 			return ctx.format.ulp(ret, 5.0);
 	}
+
+	Interval getCodomain(const EvalContext& ctx) const
+	{
+		return ctx.format.roundOut(Interval(-0.5 * DE_PI_DOUBLE, 0.5 * DE_PI_DOUBLE), true);
+	}
 };
 
 template <class T>
@@ -3002,13 +3268,18 @@
 			return ctx.format.ulp(ret, 5.0);
 	}
 
-	// Codomain could be [-pi, pi], but that would probably be too strict.
+	Interval getCodomain(const EvalContext& ctx) const
+	{
+		return ctx.format.roundOut(Interval(-DE_PI_DOUBLE, DE_PI_DOUBLE), true);
+	}
 };
 
 ExprP<float> atan2	(const ExprP<float>& x, const ExprP<float>& y)	{ return app<ATan2<Signature<float, float, float> > >(x, y); }
 
 ExprP<deFloat16> atan2	(const ExprP<deFloat16>& x, const ExprP<deFloat16>& y)	{ return app<ATan2<Signature<deFloat16, deFloat16, deFloat16> > >(x, y); }
 
+ExprP<double> atan2	(const ExprP<double>& x, const ExprP<double>& y)	{ return app<ATan2<Signature<double, double, double> > >(x, y); }
+
 
 DEFINE_DERIVED_FLOAT1(Sinh, sinh, x, (exp<float>(x) - exp<float>(-x)) / constant(2.0f));
 DEFINE_DERIVED_FLOAT1(Cosh, cosh, x, (exp<float>(x) + exp<float>(-x)) / constant(2.0f));
@@ -3018,6 +3289,10 @@
 DEFINE_DERIVED_FLOAT1_16BIT(Cosh16Bit, cosh, x, (exp(x) + exp(-x)) / constant((deFloat16)FLOAT16_2_0));
 DEFINE_DERIVED_FLOAT1_16BIT(Tanh16Bit, tanh, x, sinh(x) / cosh(x));
 
+DEFINE_DERIVED_DOUBLE1(Sinh64Bit, sinh, x, (exp<double>(x) - exp<double>(-x)) / constant(2.0));
+DEFINE_DERIVED_DOUBLE1(Cosh64Bit, cosh, x, (exp<double>(x) + exp<double>(-x)) / constant(2.0));
+DEFINE_DERIVED_DOUBLE1(Tanh64Bit, tanh, x, sinh(x) / cosh(x));
+
 DEFINE_DERIVED_FLOAT1(ASin, asin, x, atan2(x, sqrt(constant(1.0f) - x * x)));
 DEFINE_DERIVED_FLOAT1(ACos, acos, x, atan2(sqrt(constant(1.0f) - x * x), x));
 DEFINE_DERIVED_FLOAT1(ASinh, asinh, x, log(x + sqrt(x * x + constant(1.0f))));
@@ -3034,6 +3309,14 @@
 DEFINE_DERIVED_FLOAT1_16BIT(ATanh16Bit, atanh, x, constant((deFloat16)FLOAT16_0_5) * log((constant((deFloat16)FLOAT16_1_0) + x) /
 															(constant((deFloat16)FLOAT16_1_0) - x)));
 
+DEFINE_DERIVED_DOUBLE1(ASin64Bit, asin, x, atan2(x, sqrt(constant(1.0) - pow(x, constant(2.0)))));
+DEFINE_DERIVED_DOUBLE1(ACos64Bit, acos, x, atan2(sqrt(constant(1.0) - pow(x, constant(2.0))), x));
+DEFINE_DERIVED_DOUBLE1(ASinh64Bit, asinh, x, log(x + sqrt(x * x + constant(1.0))));
+DEFINE_DERIVED_DOUBLE1(ACosh64Bit, acosh, x, log(x + sqrt(alternatives((x + constant(1.0)) * (x - constant(1.0)),
+																 (x * x - constant(1.0))))));
+DEFINE_DERIVED_DOUBLE1(ATanh64Bit, atanh, x, constant(0.5) * log((constant(1.0) + x) /
+															(constant(1.0) - x)));
+
 template <typename T>
 class GetComponent : public PrimitiveFunc<Signature<typename T::Element, T, int> >
 {
@@ -3075,6 +3358,7 @@
 template <typename T>	string	vecNamePrefix			(void);
 template <>				string	vecNamePrefix<float>	(void) { return ""; }
 template <>				string	vecNamePrefix<deFloat16>(void) { return ""; }
+template <>				string	vecNamePrefix<double>	(void) { return "d"; }
 template <>				string	vecNamePrefix<int>		(void) { return "i"; }
 template <>				string	vecNamePrefix<bool>		(void) { return "b"; }
 
@@ -3454,18 +3738,27 @@
 typedef GenVec<deFloat16, 2> FloatVec2_16bit;
 DEFINE_CONSTRUCTOR2(FloatVec2_16bit, Vec2_16Bit, vec2, deFloat16, deFloat16)
 
+typedef GenVec<double, 2> DoubleVec2;
+DEFINE_CONSTRUCTOR2(DoubleVec2, Vec2_64Bit, vec2, double, double)
+
 typedef GenVec<float, 3> FloatVec3;
 DEFINE_CONSTRUCTOR3(FloatVec3, Vec3, vec3, float, float, float)
 
 typedef GenVec<deFloat16, 3> FloatVec3_16bit;
 DEFINE_CONSTRUCTOR3(FloatVec3_16bit, Vec3_16Bit, vec3, deFloat16, deFloat16, deFloat16)
 
+typedef GenVec<double, 3> DoubleVec3;
+DEFINE_CONSTRUCTOR3(DoubleVec3, Vec3_64Bit, vec3, double, double, double)
+
 typedef GenVec<float, 4> FloatVec4;
 DEFINE_CONSTRUCTOR4(FloatVec4, Vec4, vec4, float, float, float, float)
 
 typedef GenVec<deFloat16, 4> FloatVec4_16bit;
 DEFINE_CONSTRUCTOR4(FloatVec4_16bit, Vec4_16Bit, vec4, deFloat16, deFloat16, deFloat16, deFloat16)
 
+typedef GenVec<double, 4> DoubleVec4;
+DEFINE_CONSTRUCTOR4(DoubleVec4, Vec4_64Bit, vec4, double, double, double, double)
+
 template <class T>
 const ExprP<T> getConstZero(void);
 template <class T>
@@ -3486,6 +3779,12 @@
 }
 
 template <>
+const ExprP<double> getConstZero<double>(void)
+{
+	return constant(0.0);
+}
+
+template <>
 const ExprP<float> getConstOne<float>(void)
 {
 	return constant(1.0f);
@@ -3498,6 +3797,12 @@
 }
 
 template <>
+const ExprP<double> getConstOne<double>(void)
+{
+	return constant(1.0);
+}
+
+template <>
 const ExprP<float> getConstTwo<float>(void)
 {
 	return constant(2.0f);
@@ -3509,6 +3814,12 @@
 	return constant((deFloat16)FLOAT16_2_0);
 }
 
+template <>
+const ExprP<double> getConstTwo<double>(void)
+{
+	return constant(2.0);
+}
+
 template <int Size, class T>
 class Dot : public DerivedFunc<Signature<T, Vector<T, Size>, Vector<T, Size> > >
 {
@@ -3591,6 +3902,17 @@
 	return app<Dot<1, float> >(x, y);
 }
 
+template <int Size>
+ExprP<double> dot (const ExprP<Vector<double, Size> >& x, const ExprP<Vector<double, Size> >& y)
+{
+	return app<Dot<Size, double> >(x, y);
+}
+
+ExprP<double> dot (const ExprP<double>& x, const ExprP<double>& y)
+{
+	return app<Dot<1, double> >(x, y);
+}
+
 template <int Size, class T>
 class Length : public DerivedFunc<
 	Signature<T, typename ContainerOf<T, Size>::Container> >
@@ -3681,8 +4003,26 @@
 	}
 };
 
+class Cross64Bit : public DerivedFunc<Signature<Vec3_64Bit, Vec3_64Bit, Vec3_64Bit> >
+{
+public:
+	string			getName		(void) const
+	{
+		return "cross";
+	}
+
+protected:
+	ExprP<Vec3_64Bit>		doExpand	(ExpandContext&, const ArgExprs& x) const
+	{
+		return vec3(x.a[1] * x.b[2] - x.b[1] * x.a[2],
+					x.a[2] * x.b[0] - x.b[2] * x.a[0],
+					x.a[0] * x.b[1] - x.b[0] * x.a[1]);
+	}
+};
+
 DEFINE_CONSTRUCTOR2(Cross, Vec3, cross, Vec3, Vec3)
 DEFINE_CONSTRUCTOR2(Cross16Bit, Vec3_16Bit, cross, Vec3_16Bit, Vec3_16Bit)
+DEFINE_CONSTRUCTOR2(Cross64Bit, Vec3_64Bit, cross, Vec3_64Bit, Vec3_64Bit)
 
 template<int Size, class T>
 class Normalize : public DerivedFunc<
@@ -3873,12 +4213,18 @@
 
 typedef Floor< Signature<float, float> > Floor32Bit;
 typedef Floor< Signature<deFloat16, deFloat16> > Floor16Bit;
+typedef Floor< Signature<double, double> > Floor64Bit;
+
+typedef Trunc< Signature<float, float> > Trunc32Bit;
+typedef Trunc< Signature<deFloat16, deFloat16> > Trunc16Bit;
+typedef Trunc< Signature<double, double> > Trunc64Bit;
 
 typedef Trunc< Signature<float, float> > Trunc32Bit;
 typedef Trunc< Signature<deFloat16, deFloat16> > Trunc16Bit;
 
 DEFINE_DERIVED_FLOAT1(Fract, fract, x, x - app<Floor32Bit>(x));
 DEFINE_DERIVED_FLOAT1_16BIT(Fract16Bit, fract, x, x - app<Floor16Bit>(x));
+DEFINE_DERIVED_DOUBLE1(Fract64Bit, fract, x, x - app<Floor64Bit>(x));
 
 template <class T>
 class PreciseFunc2 : public CFloatFunc2<T>
@@ -3891,9 +4237,11 @@
 
 DEFINE_DERIVED_FLOAT2(Mod32Bit, mod, x, y, x - y * app<Floor32Bit>(x / y));
 DEFINE_DERIVED_FLOAT2_16BIT(Mod16Bit, mod, x, y, x - y * app<Floor16Bit>(x / y));
+DEFINE_DERIVED_DOUBLE2(Mod64Bit, mod, x, y, x - y * app<Floor64Bit>(x / y));
 
 DEFINE_CASED_DERIVED_FLOAT2(FRem32Bit, frem, x, y, x - y * app<Trunc32Bit>(x / y), SPIRV_CASETYPE_FREM);
 DEFINE_CASED_DERIVED_FLOAT2_16BIT(FRem16Bit, frem, x, y, x - y * app<Trunc16Bit>(x / y), SPIRV_CASETYPE_FREM);
+DEFINE_CASED_DERIVED_DOUBLE2(FRem64Bit, frem, x, y, x - y * app<Trunc64Bit>(x / y), SPIRV_CASETYPE_FREM);
 
 template <class T>
 class Modf : public PrimitiveFunc<T>
@@ -3934,6 +4282,7 @@
 };
 typedef Modf< Signature<float, float, float> >				Modf32Bit;
 typedef Modf< Signature<deFloat16, deFloat16, deFloat16> >	Modf16Bit;
+typedef Modf< Signature<double, double, double> >			Modf64Bit;
 
 template <class T>
 class Min : public PreciseFunc2<T> { public: Min (void) : PreciseFunc2<T> ("min", deMin) {} };
@@ -3967,6 +4316,11 @@
 	return app<Clamp< Signature<float, float, float, float> > >(x, minVal, maxVal);
 }
 
+ExprP<double> clamp(const ExprP<double>& x, const ExprP<double>& minVal, const ExprP<double>& maxVal)
+{
+	return app<Clamp< Signature<double, double, double, double> > >(x, minVal, maxVal);
+}
+
 template <class T>
 class NanIfGreaterOrEqual : public FloatFunc2<T>
 {
@@ -3994,12 +4348,20 @@
 	return app<NanIfGreaterOrEqual< Signature<float, float, float> > >(edge0, edge1);
 }
 
+ExprP<double> nanIfGreaterOrEqual(const ExprP<double>& edge0, const ExprP<double>& edge1)
+{
+	return app<NanIfGreaterOrEqual< Signature<double, double, double> > >(edge0, edge1);
+}
+
 DEFINE_DERIVED_FLOAT3(Mix, mix, x, y, a, alternatives((x * (constant(1.0f) - a)) + y * a,
 													  x + (y - x) * a));
 
 DEFINE_DERIVED_FLOAT3_16BIT(Mix16Bit, mix, x, y, a, alternatives((x * (constant((deFloat16)FLOAT16_1_0) - a)) + y * a,
 													  x + (y - x) * a));
 
+DEFINE_DERIVED_DOUBLE3(Mix64Bit, mix, x, y, a, alternatives((x * (constant(1.0) - a)) + y * a,
+													  x + (y - x) * a));
+
 static double step (double edge, double x)
 {
 	return x < edge ? 0.0 : 1.0;
@@ -4051,8 +4413,22 @@
 	return (t * t * (constant((deFloat16)FLOAT16_3_0) - constant((deFloat16)FLOAT16_2_0) * t));
 }
 
+template<>
+ExprP<SmoothStep< Signature<double, double, double, double> >::Ret>	SmoothStep< Signature<double, double, double, double> >::doExpand (ExpandContext& ctx, const SmoothStep< Signature<double, double, double, double> >::ArgExprs& args) const
+{
+	const ExprP<double>&	edge0	= args.a;
+	const ExprP<double>&	edge1	= args.b;
+	const ExprP<double>&	x		= args.c;
+	const ExprP<double>		tExpr	= clamp((x - edge0) / (edge1 - edge0), constant(0.0), constant(1.0))
+									+ nanIfGreaterOrEqual(edge0, edge1); // force NaN (and non-analyzable result) for cases edge0 >= edge1
+	const ExprP<double>		t		= bindExpression("t", ctx, tExpr);
+
+	return (t * t * (constant(3.0) - constant(2.0) * t));
+}
+
 //Signature<float, float, int>
 //Signature<float, deFloat16, int>
+//Signature<double, double, int>
 template <class T>
 class FrExp : public PrimitiveFunc<T>
 {
@@ -4117,7 +4493,8 @@
 };
 
 //Signature<float, float, int>
-//Signature<float, deFloat16, int>
+//Signature<deFloat16, deFloat16, int>
+//Signature<double, double, int>
 template <class T>
 class LdExp : public PrimitiveFunc<T >
 {
@@ -4133,17 +4510,34 @@
 protected:
 	Interval	doApply			(const EvalContext& ctx, const IArgs& iargs) const
 	{
-		Interval	ret = call<Exp2<Signature<float, float> > >(ctx, iargs.b);
-		// Khronos bug 11180 consensus: if exp2(exponent) cannot be represented,
-		// the result is undefined.
-
-		if (ret.contains(TCU_INFINITY) | ret.contains(-TCU_INFINITY))
-			ret |= TCU_NAN;
-
-		return call<Mul< Signature<float, float, float> > >(ctx, iargs.a, ret);
+		const int minExp = ctx.format.getMinExp();
+		const int maxExp = ctx.format.getMaxExp();
+		// Restrictions from the GLSL.std.450 instruction set.
+		// See Khronos bugzilla 11180 for rationale.
+		bool any = iargs.a.hasNaN() || iargs.b.hi() > (maxExp + 1);
+		Interval ret(any, ldexp(iargs.a.lo(), (int)iargs.b.lo()), ldexp(iargs.a.hi(), (int)iargs.b.hi()));
+		if (iargs.b.lo() < minExp) ret |= 0.0;
+		if (!ret.isFinite()) ret |= TCU_NAN;
+		return ctx.format.convert(ret);
 	}
 };
 
+template <>
+Interval LdExp <Signature<double, double, int>>::doApply(const EvalContext& ctx, const IArgs& iargs) const
+{
+	const int minExp = ctx.format.getMinExp();
+	const int maxExp = ctx.format.getMaxExp();
+	// Restrictions from the GLSL.std.450 instruction set.
+	// See Khronos bugzilla 11180 for rationale.
+	bool any = iargs.a.hasNaN() || iargs.b.hi() > (maxExp + 1);
+	Interval ret(any, ldexp(iargs.a.lo(), (int)iargs.b.lo()), ldexp(iargs.a.hi(), (int)iargs.b.hi()));
+	// Add 1ULP precision tolerance to account for differing rounding modes between the GPU and deLdExp.
+	ret += Interval(-ctx.format.ulp(ret.lo()), ctx.format.ulp(ret.hi()));
+	if (iargs.b.lo() < minExp) ret |= 0.0;
+	if (!ret.isFinite()) ret |= TCU_NAN;
+	return ctx.format.convert(ret);
+}
+
 template<int Rows, int Columns, class T>
 class Transpose : public PrimitiveFunc<Signature<Matrix<T, Rows, Columns>,
 												 Matrix<T, Columns, Rows> > >
@@ -4319,6 +4713,7 @@
 
 template<int Size> class Determinant;
 template<int Size> class Determinant16bit;
+template<int Size> class Determinant64bit;
 
 template<int Size>
 ExprP<float> determinant (ExprP<Matrix<float, Size, Size> > mat)
@@ -4332,6 +4727,12 @@
 	return app<Determinant16bit<Size> >(mat);
 }
 
+template<int Size>
+ExprP<double> determinant (ExprP<Matrix<double, Size, Size> > mat)
+{
+	return app<Determinant64bit<Size> >(mat);
+}
+
 template<>
 class Determinant<2> : public DeterminantBase<Signature<float, Matrix<float, 2, 2> > >
 {
@@ -4450,6 +4851,65 @@
 	}
 };
 
+template<>
+class Determinant64bit<2> : public DeterminantBase<Signature<double, Matrix<double, 2, 2> > >
+{
+protected:
+	ExprP<Ret>	doExpand (ExpandContext&, const ArgExprs& args)	const
+	{
+		ExprP<Matrix2d>	mat	= args.a;
+
+		return mat[0][0] * mat[1][1] - mat[1][0] * mat[0][1];
+	}
+};
+
+template<>
+class Determinant64bit<3> : public DeterminantBase<Signature<double, Matrix<double, 3, 3> > >
+{
+protected:
+	ExprP<Ret> doExpand(ExpandContext&, const ArgExprs& args) const
+	{
+		ExprP<Matrix3d>	mat = args.a;
+
+		return (mat[0][0] * (mat[1][1] * mat[2][2] - mat[1][2] * mat[2][1]) +
+			mat[0][1] * (mat[1][2] * mat[2][0] - mat[1][0] * mat[2][2]) +
+			mat[0][2] * (mat[1][0] * mat[2][1] - mat[1][1] * mat[2][0]));
+	}
+};
+
+template<>
+class Determinant64bit<4> : public DeterminantBase<Signature<double, Matrix<double, 4, 4> > >
+{
+protected:
+	ExprP<Ret>	doExpand(ExpandContext& ctx, const ArgExprs& args) const
+	{
+		ExprP<Matrix4d>	mat = args.a;
+		ExprP<Matrix3d>	minors[4];
+
+		for (int ndx = 0; ndx < 4; ++ndx)
+		{
+			ExprP<Vec4_64Bit>		minorColumns[3];
+			ExprP<Vec3_64Bit>		columns[3];
+
+			for (int col = 0; col < 3; ++col)
+				minorColumns[col] = mat[col < ndx ? col : col + 1];
+
+			for (int col = 0; col < 3; ++col)
+				columns[col] = vec3(minorColumns[0][col + 1],
+					minorColumns[1][col + 1],
+					minorColumns[2][col + 1]);
+
+			minors[ndx] = bindExpression("minor", ctx,
+				mat3(columns[0], columns[1], columns[2]));
+		}
+
+		return (mat[0][0] * determinant(minors[0]) -
+			mat[1][0] * determinant(minors[1]) +
+			mat[2][0] * determinant(minors[2]) -
+			mat[3][0] * determinant(minors[3]));
+	}
+};
+
 template<int Size> class Inverse;
 
 template <int Size>
@@ -4466,6 +4926,14 @@
 	return app<Inverse16bit<Size> >(mat);
 }
 
+template<int Size> class Inverse64bit;
+
+template <int Size>
+ExprP<Matrix<double, Size, Size> > inverse (ExprP<Matrix<double, Size, Size> > mat)
+{
+	return app<Inverse64bit<Size> >(mat);
+}
+
 template<>
 class Inverse<2> : public DerivedFunc<Signature<Mat2, Mat2> >
 {
@@ -4668,8 +5136,110 @@
 	}
 };
 
+template<>
+class Inverse64bit<2> : public DerivedFunc<Signature<Matrix2d, Matrix2d> >
+{
+public:
+	string		getName	(void) const
+	{
+		return "inverse";
+	}
+
+protected:
+	ExprP<Ret>	doExpand (ExpandContext& ctx, const ArgExprs& args) const
+	{
+		ExprP<Matrix2d>		mat = args.a;
+		ExprP<double>		det	= bindExpression("det", ctx, determinant(mat));
+
+		return mat2(vec2((mat[1][1] / det), (-mat[0][1] / det)),
+					vec2((-mat[1][0] / det), (mat[0][0] / det)));
+	}
+};
+
+template<>
+class Inverse64bit<3> : public DerivedFunc<Signature<Matrix3d, Matrix3d> >
+{
+public:
+	string		getName(void) const
+	{
+		return "inverse";
+	}
+
+protected:
+	ExprP<Ret>	doExpand(ExpandContext& ctx, const ArgExprs& args)			const
+	{
+		ExprP<Matrix3d>		mat = args.a;
+		ExprP<Matrix2d>		invA = bindExpression("invA", ctx,
+			inverse(mat2(vec2(mat[0][0], mat[0][1]),
+				vec2(mat[1][0], mat[1][1]))));
+
+		ExprP<Vec2_64Bit>		matB = bindExpression("matB", ctx, vec2(mat[2][0], mat[2][1]));
+		ExprP<Vec2_64Bit>		matC = bindExpression("matC", ctx, vec2(mat[0][2], mat[1][2]));
+		ExprP<Matrix3d::Scalar>	matD = bindExpression("matD", ctx, mat[2][2]);
+
+		ExprP<Matrix3d::Scalar>	schur = bindExpression("schur", ctx,
+			constant(1.0) /
+			(matD - dot(matC * invA, matB)));
+
+		ExprP<Vec2_64Bit>		t1 = invA * matB;
+		ExprP<Vec2_64Bit>		t2 = t1 * schur;
+		ExprP<Matrix2d>			t3 = outerProduct(t2, matC);
+		ExprP<Matrix2d>			t4 = t3 * invA;
+		ExprP<Matrix2d>			t5 = invA + t4;
+		ExprP<Matrix2d>			blockA = bindExpression("blockA", ctx, t5);
+		ExprP<Vec2_64Bit>		blockB = bindExpression("blockB", ctx,
+			(invA * matB) * -schur);
+		ExprP<Vec2_64Bit>		blockC = bindExpression("blockC", ctx,
+			(matC * invA) * -schur);
+
+		return mat3(vec3(blockA[0][0], blockA[0][1], blockC[0]),
+			vec3(blockA[1][0], blockA[1][1], blockC[1]),
+			vec3(blockB[0], blockB[1], schur));
+	}
+};
+
+template<>
+class Inverse64bit<4> : public DerivedFunc<Signature<Matrix4d, Matrix4d> >
+{
+public:
+	string		getName(void) const { return "inverse"; }
+
+protected:
+	ExprP<Ret>			doExpand(ExpandContext&		ctx,
+		const ArgExprs&	args)			const
+	{
+		ExprP<Matrix4d>	mat = args.a;
+		ExprP<Matrix2d>	invA = bindExpression("invA", ctx,
+			inverse(mat2(vec2(mat[0][0], mat[0][1]),
+				vec2(mat[1][0], mat[1][1]))));
+		ExprP<Matrix2d>	matB = bindExpression("matB", ctx,
+			mat2(vec2(mat[2][0], mat[2][1]),
+				vec2(mat[3][0], mat[3][1])));
+		ExprP<Matrix2d>	matC = bindExpression("matC", ctx,
+			mat2(vec2(mat[0][2], mat[0][3]),
+				vec2(mat[1][2], mat[1][3])));
+		ExprP<Matrix2d>	matD = bindExpression("matD", ctx,
+			mat2(vec2(mat[2][2], mat[2][3]),
+				vec2(mat[3][2], mat[3][3])));
+		ExprP<Matrix2d>	schur = bindExpression("schur", ctx,
+			inverse(matD + -(matC * invA * matB)));
+		ExprP<Matrix2d>	blockA = bindExpression("blockA", ctx,
+			invA + (invA * matB * schur * matC * invA));
+		ExprP<Matrix2d>	blockB = bindExpression("blockB", ctx,
+			(-invA) * matB * schur);
+		ExprP<Matrix2d>	blockC = bindExpression("blockC", ctx,
+			(-schur) * matC * invA);
+
+		return mat4(vec4(blockA[0][0], blockA[0][1], blockC[0][0], blockC[0][1]),
+			vec4(blockA[1][0], blockA[1][1], blockC[1][0], blockC[1][1]),
+			vec4(blockB[0][0], blockB[0][1], schur[0][0], schur[0][1]),
+			vec4(blockB[1][0], blockB[1][1], schur[1][0], schur[1][1]));
+	}
+};
+
 //Signature<float, float, float, float>
 //Signature<deFloat16, deFloat16, deFloat16, deFloat16>
+//Signature<double, double, double, double>
 template <class T>
 class Fma : public DerivedFunc<T>
 {
@@ -4709,6 +5279,11 @@
 	return app<Add< Signature<deFloat16, deFloat16, deFloat16> > >(arg0, arg1);
 }
 
+ExprP<double> operator+ (const ExprP<double>& arg0, const ExprP<double>& arg1)
+{
+	return app<Add< Signature<double, double, double> > >(arg0, arg1);
+}
+
 template <typename T>
 ExprP<T> operator- (const ExprP<T>& arg0, const ExprP<T>& arg1)
 {
@@ -4731,6 +5306,11 @@
 	return app<Mul< Signature<deFloat16, deFloat16, deFloat16> > >(arg0, arg1);
 }
 
+ExprP<double> operator* (const ExprP<double>& arg0, const ExprP<double>& arg1)
+{
+	return app<Mul< Signature<double, double, double> > >(arg0, arg1);
+}
+
 template <typename T>
 ExprP<T> operator/ (const ExprP<T>& arg0, const ExprP<T>& arg1)
 {
@@ -4979,6 +5559,13 @@
 	return app<CompMatFunc<Add< Signature<deFloat16, deFloat16, deFloat16> >, deFloat16, Rows, Cols> >(left, right);
 }
 
+template<int Rows, int Cols>
+ExprP<Matrix<double, Rows, Cols> > operator+ (const ExprP<Matrix<double, Rows, Cols> >&	left,
+											  const ExprP<Matrix<double, Rows, Cols> >&	right)
+{
+	return app<CompMatFunc<Add< Signature<double, double, double> >, double, Rows, Cols> >(left, right);
+}
+
 template<typename T, int Rows, int Cols>
 ExprP<Matrix<T, Rows, Cols> > operator- (const ExprP<Matrix<T, Rows, Cols> >&	mat)
 {
@@ -5055,6 +5642,15 @@
 	void	removeNotInRange	(vector<float>& dst, const Interval& inputRange, const Precision prec)								const;
 };
 
+template <>
+class DefaultSampling<double> : public Sampling<double>
+{
+public:
+	double	genRandom			(const FloatFormat& format, const Precision prec, Random& rnd, const Interval& inputRange)			const;
+	void	genFixeds			(const FloatFormat& format, const Precision prec, vector<double>& dst, const Interval& inputRange)	const;
+	void	removeNotInRange	(vector<double>& dst, const Interval& inputRange, const Precision prec)								const;
+};
+
 static bool isDenorm16(deFloat16 v)
 {
 	const deUint16 mantissa = 0x03FF;
@@ -5166,6 +5762,8 @@
 {
 	for (vector<float>::iterator it = dst.begin(); it < dst.end();)
 	{
+		// Remove out of range values. PRECISION_LAST means this is an FP16 test so remove any values that
+		// will be denorms when converted to FP16. (This is used in the precision_fp16_storage32b test group).
 		if ( !inputRange.contains(static_cast<double>(*it)) || (prec == glu::PRECISION_LAST && isDenorm16(deFloat32To16Round(*it, DE_ROUNDINGMODE_TO_ZERO))))
 			it = dst.erase(it);
 		else
@@ -5173,6 +5771,116 @@
 	}
 }
 
+//! Generate a random double from a reasonable general-purpose distribution.
+double DefaultSampling<double>::genRandom (const FloatFormat&	format,
+										   Precision			prec,
+										   Random&				rnd,
+										   const Interval&		inputRange) const
+{
+	DE_UNREF(prec);
+	// No testing of subnormals. TODO: Could integrate float controls for some operations.
+	const int		minExp			= format.getMinExp();
+	const int		maxExp			= format.getMaxExp();
+	const bool		haveSubnormal	= false;
+	const double	midpoint		= inputRange.midpoint();
+
+	// Choose exponent so that the cumulative distribution is cubic.
+	// This makes the probability distribution quadratic, with the peak centered on zero.
+	const double	minRoot			= deCbrt(minExp - 0.5 - (haveSubnormal ? 1.0 : 0.0));
+	const double	maxRoot			= deCbrt(maxExp + 0.5);
+	const int		fractionBits	= format.getFractionBits();
+	const int		exp				= int(deRoundEven(dePow(rnd.getDouble(minRoot, maxRoot),
+															3.0)));
+	double			base			= 0.0; // integral power of two
+	double			quantum			= 0.0; // smallest representable difference in the binade
+	double			significand		= 0.0; // Significand.
+	double			value			= -1.0;
+	DE_ASSERT(fractionBits < std::numeric_limits<double>::digits);
+
+	// Generate some occasional special numbers
+	switch (rnd.getInt(0, 64))
+	{
+		case 0:		return inputRange.contains(0)				? 0				: midpoint; break;
+		case 1:		return inputRange.contains(TCU_INFINITY)	? TCU_INFINITY	: midpoint; break;
+		case 2:		return inputRange.contains(-TCU_INFINITY)	? -TCU_INFINITY	: midpoint; break;
+		case 3:		return inputRange.contains(TCU_NAN)			? TCU_NAN		: midpoint; break;
+		default:	break;
+	}
+
+	// Normal number
+	base = deLdExp(1.0, exp);
+	quantum = deLdExp(1.0, exp - fractionBits);
+
+	switch (rnd.getInt(0, 16))
+	{
+		case 0: // The highest number in this binade, significand is all bits one.
+			significand = base - quantum;
+			break;
+		case 1: // Significand is one.
+			significand = quantum;
+			break;
+		case 2: // Significand is zero.
+			significand = 0.0;
+			break;
+		default: // Random (evenly distributed) significand.
+		{
+			deUint64 intFraction = rnd.getUint64() & ((1 << fractionBits) - 1);
+			significand = double(intFraction) * quantum;
+		}
+	}
+
+	// Produce positive numbers more often than negative.
+	value = (rnd.getInt(0, 3) == 0 ? -1.0 : 1.0) * (base + significand);
+
+	return inputRange.contains(value) ? value : midpoint;
+}
+
+//! Generate a standard set of floats that should always be tested.
+void DefaultSampling<double>::genFixeds (const FloatFormat& format, const Precision prec, vector<double>& dst, const Interval& inputRange) const
+{
+	const int			minExp			= format.getMinExp();
+	const int			maxExp			= format.getMaxExp();
+	const int			fractionBits	= format.getFractionBits();
+	const double		minQuantum		= deLdExp(1.0, minExp - fractionBits);
+	const double		minNormalized	= deLdExp(1.0, minExp);
+	const double		maxQuantum		= deLdExp(1.0, maxExp - fractionBits);
+
+	// NaN
+	dst.push_back(TCU_NAN);
+	// Zero
+	dst.push_back(0.0);
+
+	for (int sign = -1; sign <= 1; sign += 2)
+	{
+		// Smallest normalized
+		dst.push_back((double)sign * minNormalized);
+
+		// Next smallest normalized
+		dst.push_back((double)sign * (minNormalized + minQuantum));
+
+		dst.push_back((double)sign * 0.5);
+		dst.push_back((double)sign * 1.0);
+		dst.push_back((double)sign * 2.0);
+
+		// Largest number
+		dst.push_back((double)sign * (deLdExp(1.0, maxExp) + (deLdExp(1.0, maxExp) - maxQuantum)));
+
+		dst.push_back((double)sign * TCU_INFINITY);
+	}
+	removeNotInRange(dst, inputRange, prec);
+}
+
+void DefaultSampling<double>::removeNotInRange (vector<double>& dst, const Interval& inputRange, const Precision) const
+{
+	for (vector<double>::iterator it = dst.begin(); it < dst.end();)
+	{
+		if ( !inputRange.contains(*it) )
+			it = dst.erase(it);
+		else
+			++it;
+	}
+}
+
 template <>
 class DefaultSampling<deFloat16> : public Sampling<deFloat16>
 {
@@ -5386,8 +6094,9 @@
 									 const Precision						precision_,
 									 const ShaderType						shaderType_,
 									 const size_t							numRandoms_,
-									 const Extension16BitStorageFeatures	extension16BitStorage_ = EXT16BITSTORAGEFEATURES_NO_EXTENSION,
-									 const bool								isPackFloat16b_ = false)
+									 const PrecisionTestFeatures	precisionTestFeatures_ = PRECISION_TEST_FEATURES_NONE,
+									 const bool						isPackFloat16b_ = false,
+									 const bool						isFloat64b_ = false)
 						: name						(name_)
 						, testContext				(testContext_)
 						, floatFormat				(floatFormat_)
@@ -5396,8 +6105,9 @@
 						, shaderType				(shaderType_)
 						, numRandoms				(numRandoms_)
 						, inputRange				(-TCU_INFINITY, TCU_INFINITY)
-						, extension16BitStorage		(extension16BitStorage_)
+						, precisionTestFeatures		(precisionTestFeatures_)
 						, isPackFloat16b			(isPackFloat16b_)
+						, isFloat64b				(isFloat64b_)
 					{}
 
 	string							name;
@@ -5408,8 +6118,9 @@
 	ShaderType						shaderType;
 	size_t							numRandoms;
 	Interval						inputRange;
-	Extension16BitStorageFeatures	extension16BitStorage;
+	PrecisionTestFeatures	precisionTestFeatures;
 	bool							isPackFloat16b;
+	bool					isFloat64b;
 };
 
 template<typename In0_ = Void, typename In1_ = Void, typename In2_ = Void, typename In3_ = Void>
@@ -5509,13 +6220,15 @@
 																		 const ShaderSpec&				shaderSpec,
 																		 const Variables<In, Out>		variables,
 																		 const Samplings<In>&			samplings,
-																		 const StatementP				stmt)
+																		 const StatementP				stmt,
+																		 bool							modularOp = false)
 										: TestInstance	(context)
 										, m_caseCtx		(caseCtx)
 										, m_variables	(variables)
 										, m_samplings	(samplings)
 										, m_stmt		(stmt)
 										, m_executor	(createExecutor(context, caseCtx.shaderType, shaderSpec))
+										, m_modularOp	(modularOp)
 									{
 									}
 	virtual tcu::TestStatus			iterate								(void);
@@ -5526,6 +6239,7 @@
 	const Samplings<In>&			m_samplings;
 	StatementP						m_stmt;
 	de::UniquePtr<ShaderExecutor>	m_executor;
+	bool							m_modularOp;
 };
 
 template<class In, class Out>
@@ -5538,7 +6252,7 @@
 	typedef typename	Out::Out0	Out0;
 	typedef typename	Out::Out1	Out1;
 
-	areFeaturesSupported(m_context, m_caseCtx.extension16BitStorage);
+	areFeaturesSupported(m_context, m_caseCtx.precisionTestFeatures);
 	Inputs<In>			inputs		= generateInputs(m_samplings, m_caseCtx.floatFormat, m_caseCtx.precision, m_caseCtx.numRandoms, 0xdeadbeefu + m_caseCtx.testContext.getCommandLine().getBaseSeed(), m_caseCtx.inputRange);
 	const FloatFormat&	fmt			= m_caseCtx.floatFormat;
 	const int			inCount		= numInputs<In>();
@@ -5552,13 +6266,20 @@
 	ResultCollector		status;
 	TestLog&			testLog		= m_context.getTestContext().getLog();
 
+	// Module operations need exactly two inputs and have exactly one output.
+	if (m_modularOp)
+	{
+		DE_ASSERT(inCount == 2);
+		DE_ASSERT(outCount == 1);
+	}
+
 	const void*			inputArr[]	=
 	{
-		&inputs.in0.front(), &inputs.in1.front(), &inputs.in2.front(), &inputs.in3.front(),
+		inputs.in0.data(), inputs.in1.data(), inputs.in2.data(), inputs.in3.data(),
 	};
 	void*				outputArr[]	=
 	{
-		&outputs.out0.front(), &outputs.out1.front(),
+		outputs.out0.data(), outputs.out1.data(),
 	};
 
 	// Print out the statement and its definitions
@@ -5619,6 +6340,10 @@
 	{
 		bool						result			= true;
 		const bool					isInput16Bit	= m_executor->areInputs16Bit();
+		const bool					isInput64Bit	= m_executor->areInputs64Bit();
+
+		DE_ASSERT(!(isInput16Bit && isInput64Bit));
+
 		typename Traits<Out0>::IVal	reference0;
 		typename Traits<Out1>::IVal	reference1;
 
@@ -5634,25 +6359,30 @@
 			EvalContext	ctx (fmt, m_caseCtx.precision, env, 0);
 			m_stmt->execute(ctx);
 
-		switch (outCount)
-		{
-			case 2:
-				reference1 = convert<Out1>(highpFmt, env.lookup(*m_variables.out1));
-				if (!status.check(contains(reference1, outputs.out1[valueNdx], m_caseCtx.isPackFloat16b), "Shader output 1 is outside acceptable range"))
-					result = false;
-			// Fallthrough
-			case 1:
-				reference0 = convert<Out0>(highpFmt, env.lookup(*m_variables.out0));
-				if (!status.check(contains(reference0, outputs.out0[valueNdx], m_caseCtx.isPackFloat16b), "Shader output 0 is outside acceptable range"))
-				{
-					m_stmt->failed(ctx);
-					reference0 = convert<Out0>(highpFmt, env.lookup(*m_variables.out0));
-					if (!status.check(contains(reference0, outputs.out0[valueNdx], m_caseCtx.isPackFloat16b), "Shader output 0 is outside acceptable range"))
+			switch (outCount)
+			{
+				case 2:
+					reference1 = convert<Out1>(highpFmt, env.lookup(*m_variables.out1));
+					if (!status.check(contains(reference1, outputs.out1[valueNdx], m_caseCtx.isPackFloat16b), "Shader output 1 is outside acceptable range"))
 						result = false;
-				}
-			// Fallthrough
-			default: break;
-		}
+				// Fallthrough
+				case 1:
+					{
+						// Pass b from mod(a, b) if we are in the modulo operation.
+						const tcu::Maybe<In1> modularDivisor = (m_modularOp ? tcu::just(inputs.in1[valueNdx]) : tcu::nothing<In1>());
+
+						reference0 = convert<Out0>(highpFmt, env.lookup(*m_variables.out0));
+						if (!status.check(contains(reference0, outputs.out0[valueNdx], m_caseCtx.isPackFloat16b, modularDivisor), "Shader output 0 is outside acceptable range"))
+						{
+							m_stmt->failed(ctx);
+							reference0 = convert<Out0>(highpFmt, env.lookup(*m_variables.out0));
+							if (!status.check(contains(reference0, outputs.out0[valueNdx], m_caseCtx.isPackFloat16b, modularDivisor), "Shader output 0 is outside acceptable range"))
+								result = false;
+						}
+					}
+				// Fallthrough
+				default: break;
+			}
 
 		}
 		if (!result)
@@ -5667,25 +6397,25 @@
 			if (inCount > 0)
 			{
 				builder << "\t" << m_variables.in0->getName() << " = "
-						<< (isInput16Bit ? value16ToString(highpFmt, inputs.in0[valueNdx]) : value32ToString(highpFmt, inputs.in0[valueNdx])) << "\n";
+						<< (isInput64Bit ? value64ToString(highpFmt, inputs.in0[valueNdx]) : (isInput16Bit ? value16ToString(highpFmt, inputs.in0[valueNdx]) : value32ToString(highpFmt, inputs.in0[valueNdx]))) << "\n";
 			}
 
 			if (inCount > 1)
 			{
 				builder << "\t" << m_variables.in1->getName() << " = "
-						<< (isInput16Bit ? value16ToString(highpFmt, inputs.in1[valueNdx]) : value32ToString(highpFmt, inputs.in1[valueNdx])) << "\n";
+						<< (isInput64Bit ? value64ToString(highpFmt, inputs.in1[valueNdx]) : (isInput16Bit ? value16ToString(highpFmt, inputs.in1[valueNdx]) : value32ToString(highpFmt, inputs.in1[valueNdx]))) << "\n";
 			}
 
 			if (inCount > 2)
 			{
 				builder << "\t" << m_variables.in2->getName() << " = "
-						<< (isInput16Bit ? value16ToString(highpFmt, inputs.in2[valueNdx]) : value32ToString(highpFmt, inputs.in2[valueNdx])) << "\n";
+						<< (isInput64Bit ? value64ToString(highpFmt, inputs.in2[valueNdx]) : (isInput16Bit ? value16ToString(highpFmt, inputs.in2[valueNdx]) : value32ToString(highpFmt, inputs.in2[valueNdx]))) << "\n";
 			}
 
 			if (inCount > 3)
 			{
 				builder << "\t" << m_variables.in3->getName() << " = "
-						<< (isInput16Bit ? value16ToString(highpFmt, inputs.in3[valueNdx]) : value32ToString(highpFmt, inputs.in3[valueNdx])) << "\n";
+						<< (isInput64Bit ? value64ToString(highpFmt, inputs.in3[valueNdx]) : (isInput16Bit ? value16ToString(highpFmt, inputs.in3[valueNdx]) : value32ToString(highpFmt, inputs.in3[valueNdx]))) << "\n";
 			}
 
 			if (outCount > 0)
@@ -5700,7 +6430,7 @@
 				else
 				{
 					builder << "\t" << m_variables.out0->getName() << " = "
-						<< (m_executor->isOutput16Bit(0u) || m_caseCtx.isPackFloat16b ? value16ToString(highpFmt, outputs.out0[valueNdx]) : value32ToString(highpFmt, outputs.out0[valueNdx])) << "\n"
+						<< (m_executor->isOutput64Bit(0u) ? value64ToString(highpFmt, outputs.out0[valueNdx]) : (m_executor->isOutput16Bit(0u) || m_caseCtx.isPackFloat16b ? value16ToString(highpFmt, outputs.out0[valueNdx]) : value32ToString(highpFmt, outputs.out0[valueNdx]))) << "\n"
 						<< "\tExpected range: "
 						<< intervalToString<typename Out::Out0>(highpFmt, reference0) << "\n";
 				}
@@ -5709,7 +6439,7 @@
 			if (outCount > 1)
 			{
 				builder << "\t" << m_variables.out1->getName() << " = "
-						<< (m_executor->isOutput16Bit(1u) || m_caseCtx.isPackFloat16b ? value16ToString(highpFmt, outputs.out1[valueNdx]) : value32ToString(highpFmt, outputs.out1[valueNdx])) << "\n"
+						<< (m_executor->isOutput64Bit(1u) ? value64ToString(highpFmt, outputs.out1[valueNdx]) : (m_executor->isOutput16Bit(1u) || m_caseCtx.isPackFloat16b ? value16ToString(highpFmt, outputs.out1[valueNdx]) : value32ToString(highpFmt, outputs.out1[valueNdx]))) << "\n"
 						<< "\tExpected range: "
 						<< intervalToString<typename Out::Out1>(highpFmt, reference1) << "\n";
 			}
@@ -6002,7 +6732,7 @@
 {
 protected:
 				FuncCaseBase	(const CaseContext& context, const string& name, const FuncBase& func)
-									: PrecisionCase	(context, name, func.getInputRange(context.precision == glu::PRECISION_LAST || context.isPackFloat16b), func.getRequiredExtension())
+									: PrecisionCase	(context, name, func.getInputRange(!context.isFloat64b && (context.precision == glu::PRECISION_LAST || context.isPackFloat16b)), func.getRequiredExtension())
 								{
 								}
 
@@ -6022,16 +6752,17 @@
 	typedef InTypes<Arg0, Arg1, Arg2, Arg3>	In;
 	typedef OutTypes<Ret>					Out;
 
-											FuncCase		(const CaseContext& context, const string& name, const CaseFunc& func)
+											FuncCase		(const CaseContext& context, const string& name, const CaseFunc& func, bool modularOp = false)
 												: FuncCaseBase	(context, name, func)
 												, m_func		(func)
+												, m_modularOp	(modularOp)
 												{
 													buildTest();
 												}
 
 	virtual	TestInstance*					createInstance	(Context& context) const
 	{
-		return new BuiltinPrecisionCaseTestInstance<In, Out>(context, m_ctx, m_spec, m_variables, getSamplings(), m_stmt);
+		return new BuiltinPrecisionCaseTestInstance<In, Out>(context, m_ctx, m_spec, m_variables, getSamplings(), m_stmt, m_modularOp);
 	}
 
 protected:
@@ -6044,6 +6775,7 @@
 private:
 	const CaseFunc&							m_func;
 	Variables<In, Out>						m_variables;
+	bool									m_modularOp;
 };
 
 template <typename Sig>
@@ -6077,15 +6809,16 @@
 	typedef InTypes<Arg0, Arg2, Arg3>	In;
 	typedef OutTypes<Ret, Arg1>			Out;
 
-										InOutFuncCase	(const CaseContext& context, const string& name, const CaseFunc& func)
+										InOutFuncCase	(const CaseContext& context, const string& name, const CaseFunc& func, bool modularOp = false)
 											: FuncCaseBase	(context, name, func)
 											, m_func		(func)
+											, m_modularOp	(modularOp)
 											{
 												buildTest();
 											}
 	virtual TestInstance*				createInstance	(Context& context) const
 	{
-		return new BuiltinPrecisionCaseTestInstance<In, Out>(context, m_ctx, m_spec, m_variables, getSamplings(), m_stmt);
+		return new BuiltinPrecisionCaseTestInstance<In, Out>(context, m_ctx, m_spec, m_variables, getSamplings(), m_stmt, m_modularOp);
 	}
 
 protected:
@@ -6098,6 +6831,7 @@
 private:
 	const CaseFunc&						m_func;
 	Variables<In, Out>					m_variables;
+	bool								m_modularOp;
 };
 
 template <typename Sig>
@@ -6119,14 +6853,14 @@
 }
 
 template <typename Sig>
-PrecisionCase* createFuncCase (const CaseContext& context, const string& name, const Func<Sig>&	func)
+PrecisionCase* createFuncCase (const CaseContext& context, const string& name, const Func<Sig>&	func, bool modularOp = false)
 {
 	switch (func.getOutParamIndex())
 	{
 		case -1:
-			return new FuncCase<Sig>(context, name, func);
+			return new FuncCase<Sig>(context, name, func, modularOp);
 		case 1:
-			return new InOutFuncCase<Sig>(context, name, func);
+			return new InOutFuncCase<Sig>(context, name, func, modularOp);
 		default:
 			DE_FATAL("Impossible");
 	}
@@ -6154,9 +6888,10 @@
 class GenFuncCaseFactory : public CaseFactory
 {
 public:
-						GenFuncCaseFactory	(const GenFuncs<Sig>& funcs, const string& name)
+						GenFuncCaseFactory	(const GenFuncs<Sig>& funcs, const string& name, bool modularOp = false)
 							: m_funcs			(funcs)
 							, m_name			(de::toLower(name))
+							, m_modularOp		(modularOp)
 							{
 							}
 
@@ -6164,10 +6899,10 @@
 	{
 		TestCaseGroup* group = new TestCaseGroup(ctx.testContext, ctx.name.c_str(), ctx.name.c_str());
 
-		group->addChild(createFuncCase(ctx, "scalar", m_funcs.func));
-		group->addChild(createFuncCase(ctx, "vec2", m_funcs.func2));
-		group->addChild(createFuncCase(ctx, "vec3", m_funcs.func3));
-		group->addChild(createFuncCase(ctx, "vec4", m_funcs.func4));
+		group->addChild(createFuncCase(ctx, "scalar",	m_funcs.func,	m_modularOp));
+		group->addChild(createFuncCase(ctx, "vec2",		m_funcs.func2,	m_modularOp));
+		group->addChild(createFuncCase(ctx, "vec3",		m_funcs.func3,	m_modularOp));
+		group->addChild(createFuncCase(ctx, "vec4",		m_funcs.func4,	m_modularOp));
 		return MovePtr<TestNode>(group);
 	}
 
@@ -6177,6 +6912,7 @@
 private:
 	const GenFuncs<Sig>	m_funcs;
 	string				m_name;
+	bool				m_modularOp;
 };
 
 template <template <int, class> class GenF, typename T>
@@ -6298,12 +7034,12 @@
 };
 
 template <typename F>
-void addScalarFactory (BuiltinFuncs& funcs, string name = "")
+void addScalarFactory (BuiltinFuncs& funcs, string name = "", bool modularOp = false)
 {
 	if (name.empty())
 		name = instance<F>().getName();
 
-	funcs.addFactory(SharedPtr<const CaseFactory>(new GenFuncCaseFactory<typename F::Sig>(makeVectorizedFuncs<F>(), name)));
+	funcs.addFactory(SharedPtr<const CaseFactory>(new GenFuncCaseFactory<typename F::Sig>(makeVectorizedFuncs<F>(), name, modularOp)));
 }
 
 MovePtr<const CaseFactories> createBuiltinCases ()
@@ -6351,7 +7087,7 @@
 	addScalarFactory<Ceil< Signature<float, float> > >(*funcs);
 	addScalarFactory<Fract>(*funcs);
 
-	addScalarFactory<Mod32Bit>(*funcs);
+	addScalarFactory<Mod32Bit>(*funcs, "mod", true);
 	addScalarFactory<FRem32Bit>(*funcs);
 
 	funcs->addFactory(createSimpleFuncCaseFactory<Modf32Bit>());
@@ -6384,6 +7120,87 @@
 	return MovePtr<const CaseFactories>(funcs.release());
 }
 
+MovePtr<const CaseFactories> createBuiltinDoubleCases ()
+{
+	MovePtr<BuiltinFuncs>	funcs	(new BuiltinFuncs());
+
+	// Tests for ES3 builtins
+	addScalarFactory<Comparison<Signature<int, double, double>>>(*funcs);
+	addScalarFactory<Add<Signature<double, double, double>>>(*funcs);
+	addScalarFactory<Sub<Signature<double, double, double>>>(*funcs);
+	addScalarFactory<Mul<Signature<double, double, double>>>(*funcs);
+	addScalarFactory<Div<Signature<double, double, double>>>(*funcs);
+
+	// Radians, degrees, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, atan2, pow, exp, log, exp2 and log2
+	// only work with 16-bit and 32-bit floating point types according to the spec.
+#if 0
+	addScalarFactory<Radians64>(*funcs);
+	addScalarFactory<Degrees64>(*funcs);
+	addScalarFactory<Sin<Signature<double, double>>>(*funcs);
+	addScalarFactory<Cos<Signature<double, double>>>(*funcs);
+	addScalarFactory<Tan64Bit>(*funcs);
+	addScalarFactory<ASin64Bit>(*funcs);
+	addScalarFactory<ACos64Bit>(*funcs);
+	addScalarFactory<ATan2<Signature<double, double, double>>>(*funcs, "atan2");
+	addScalarFactory<ATan<Signature<double, double>>>(*funcs);
+	addScalarFactory<Sinh64Bit>(*funcs);
+	addScalarFactory<Cosh64Bit>(*funcs);
+	addScalarFactory<Tanh64Bit>(*funcs);
+	addScalarFactory<ASinh64Bit>(*funcs);
+	addScalarFactory<ACosh64Bit>(*funcs);
+	addScalarFactory<ATanh64Bit>(*funcs);
+
+	addScalarFactory<Pow64>(*funcs);
+	addScalarFactory<Exp<Signature<double, double>>>(*funcs);
+	addScalarFactory<Log<Signature<double, double>>>(*funcs);
+	addScalarFactory<Exp2<Signature<double, double>>>(*funcs);
+	addScalarFactory<Log2<Signature<double, double>>>(*funcs);
+#endif
+	addScalarFactory<Sqrt64Bit>(*funcs);
+	addScalarFactory<InverseSqrt<Signature<double, double>>>(*funcs);
+
+	addScalarFactory<Abs<Signature<double, double>>>(*funcs);
+	addScalarFactory<Sign<Signature<double, double>>>(*funcs);
+	addScalarFactory<Floor64Bit>(*funcs);
+	addScalarFactory<Trunc64Bit>(*funcs);
+	addScalarFactory<Round<Signature<double, double>>>(*funcs);
+	addScalarFactory<RoundEven<Signature<double, double>>>(*funcs);
+	addScalarFactory<Ceil<Signature<double, double>>>(*funcs);
+	addScalarFactory<Fract64Bit>(*funcs);
+
+	addScalarFactory<Mod64Bit>(*funcs, "mod", true);
+	addScalarFactory<FRem64Bit>(*funcs);
+
+	funcs->addFactory(createSimpleFuncCaseFactory<Modf64Bit>());
+	addScalarFactory<Min<Signature<double, double, double>>>(*funcs);
+	addScalarFactory<Max<Signature<double, double, double>>>(*funcs);
+	addScalarFactory<Clamp<Signature<double, double, double, double>>>(*funcs);
+	addScalarFactory<Mix64Bit>(*funcs);
+	addScalarFactory<Step<Signature<double, double, double>>>(*funcs);
+	addScalarFactory<SmoothStep<Signature<double, double, double, double>>>(*funcs);
+
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<Length, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<Distance, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<Dot, double>()));
+	funcs->addFactory(createSimpleFuncCaseFactory<Cross64Bit>());
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<Normalize, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<FaceForward, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<Reflect, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new TemplateFuncCaseFactory<Refract, double>()));
+
+	funcs->addFactory(SharedPtr<const CaseFactory>(new MatrixFuncCaseFactory<MatrixCompMult, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new MatrixFuncCaseFactory<OuterProduct, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new MatrixFuncCaseFactory<Transpose, double>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new SquareMatrixFuncCaseFactory<Determinant64bit>()));
+	funcs->addFactory(SharedPtr<const CaseFactory>(new SquareMatrixFuncCaseFactory<Inverse64bit>()));
+
+	addScalarFactory<FrExp<Signature<double, double, int>>>(*funcs);
+	addScalarFactory<LdExp<Signature<double, double, int>>>(*funcs);
+	addScalarFactory<Fma<Signature<double, double, double, double>>>(*funcs);
+
+	return MovePtr<const CaseFactories>(funcs.release());
+}
+
 MovePtr<const CaseFactories> createBuiltinCases16Bit(void)
 {
 	MovePtr<BuiltinFuncs>	funcs(new BuiltinFuncs());
@@ -6429,7 +7246,7 @@
 	addScalarFactory<Ceil< Signature<deFloat16, deFloat16> > >(*funcs);
 	addScalarFactory<Fract16Bit>(*funcs);
 
-	addScalarFactory<Mod16Bit>(*funcs);
+	addScalarFactory<Mod16Bit>(*funcs, "mod", true);
 	addScalarFactory<FRem16Bit>(*funcs);
 
 	funcs->addFactory(createSimpleFuncCaseFactory<Modf16Bit>());
@@ -6484,29 +7301,47 @@
 	return group;
 }
 
+TestCaseGroup* createFuncGroupDouble (TestContext& ctx, const CaseFactory& factory, int numRandoms)
+{
+	TestCaseGroup* const	group		= new TestCaseGroup(ctx, factory.getName().c_str(), factory.getDesc().c_str());
+	const Precision			precision	= Precision(glu::PRECISION_LAST);
+	const FloatFormat		highp		(-1022, 1023, 52, true,
+										 tcu::MAYBE,	// subnormals
+										 tcu::YES,		// infinities
+										 tcu::MAYBE);	// NaN
+
+	PrecisionTestFeatures precisionTestFeatures = PRECISION_TEST_FEATURES_64BIT_SHADER_FLOAT;
+
+	const CaseContext caseCtx("compute", ctx, highp, highp, precision, glu::SHADERTYPE_COMPUTE, numRandoms, precisionTestFeatures, false, true);
+	group->addChild(factory.createCase(caseCtx).release());
+
+	return group;
+}
+
 TestCaseGroup* createFuncGroup16Bit(TestContext& ctx, const CaseFactory& factory, int numRandoms, bool storage32)
 {
 	TestCaseGroup* const	group = new TestCaseGroup(ctx, factory.getName().c_str(), factory.getDesc().c_str());
 	const Precision			precision = Precision(glu::PRECISION_LAST);
 	const FloatFormat		float16	(-14, 15, 10, true, tcu::MAYBE);
 
-	Extension16BitStorageFeatures extension16BitStorage = EXTSHADER_FLOAT16_INT8;
+	PrecisionTestFeatures precisionTestFeatures = PRECISION_TEST_FEATURES_16BIT_SHADER_FLOAT;
 	if (!storage32)
-		extension16BitStorage |= EXT16BITSTORAGEFEATURES_UNIFORM;
+		precisionTestFeatures |= PRECISION_TEST_FEATURES_16BIT_UNIFORM_AND_STORAGE_BUFFER_ACCESS;
 
-	const CaseContext caseCtx("compute", ctx, float16, float16, precision, glu::SHADERTYPE_COMPUTE, numRandoms, extension16BitStorage, storage32);
+	const CaseContext caseCtx("compute", ctx, float16, float16, precision, glu::SHADERTYPE_COMPUTE, numRandoms, precisionTestFeatures, storage32);
 	group->addChild(factory.createCase(caseCtx).release());
 
 	return group;
 }
 
+const int defRandoms	= 16384;
+
 void addBuiltinPrecisionTests (TestContext&				ctx,
 								TestCaseGroup&			dstGroup,
 								const bool				test16Bit = false,
 								const bool				storage32Bit = false)
 {
 	const int userRandoms	= ctx.getCommandLine().getTestIterationCount();
-	const int defRandoms	= 16384;
 	const int numRandoms	= userRandoms > 0 ? userRandoms : defRandoms;
 
 	MovePtr<const CaseFactories> cases = (test16Bit && !storage32Bit)	? createBuiltinCases16Bit()
@@ -6520,6 +7355,19 @@
 	}
 }
 
+void addBuiltinPrecisionDoubleTests (TestContext&		ctx,
+									 TestCaseGroup&		dstGroup)
+{
+	const int userRandoms	= ctx.getCommandLine().getTestIterationCount();
+	const int numRandoms	= userRandoms > 0 ? userRandoms : defRandoms;
+
+	MovePtr<const CaseFactories> cases = createBuiltinDoubleCases();
+	for (size_t ndx = 0; ndx < cases->getFactories().size(); ++ndx)
+	{
+		dstGroup.addChild(createFuncGroupDouble(ctx, *cases->getFactories()[ndx], numRandoms));
+	}
+}
+
 BuiltinPrecisionTests::BuiltinPrecisionTests (tcu::TestContext& testCtx)
 	: tcu::TestCaseGroup(testCtx, "precision", "Builtin precision tests")
 {
@@ -6534,6 +7382,20 @@
 	addBuiltinPrecisionTests(m_testCtx, *this);
 }
 
+BuiltinPrecisionDoubleTests::BuiltinPrecisionDoubleTests (tcu::TestContext& testCtx)
+	: tcu::TestCaseGroup(testCtx, "precision_double", "Builtin precision tests")
+{
+}
+
+BuiltinPrecisionDoubleTests::~BuiltinPrecisionDoubleTests (void)
+{
+}
+
+void BuiltinPrecisionDoubleTests::init (void)
+{
+	addBuiltinPrecisionDoubleTests(m_testCtx, *this);
+}
+
 BuiltinPrecision16BitTests::BuiltinPrecision16BitTests (tcu::TestContext& testCtx)
 	: tcu::TestCaseGroup(testCtx, "precision_fp16_storage16b", "Builtin precision tests")
 {
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.hpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.hpp
index 1ceada7..7a2ce22 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.hpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.hpp
@@ -41,9 +41,8 @@
 
 	virtual void					init								(void);
 
-private:
-									BuiltinPrecisionTests				(const BuiltinPrecisionTests&);		// not allowed!
-	BuiltinPrecisionTests&			operator=							(const BuiltinPrecisionTests&);		// not allowed!
+									BuiltinPrecisionTests				(const BuiltinPrecisionTests&) = delete;
+	BuiltinPrecisionTests&			operator=							(const BuiltinPrecisionTests&) = delete;
 };
 
 class BuiltinPrecision16BitTests : public tcu::TestCaseGroup
@@ -54,9 +53,8 @@
 
 	virtual void					init								(void);
 
-private:
-									BuiltinPrecision16BitTests			(const BuiltinPrecisionTests&);		// not allowed!
-	BuiltinPrecision16BitTests&		operator=							(const BuiltinPrecisionTests&);		// not allowed!
+									BuiltinPrecision16BitTests			(const BuiltinPrecision16BitTests&) = delete;
+	BuiltinPrecision16BitTests&		operator=							(const BuiltinPrecision16BitTests&) = delete;
 };
 
 class BuiltinPrecision16Storage32BitTests : public tcu::TestCaseGroup
@@ -67,9 +65,20 @@
 
 	virtual void								init(void);
 
-private:
-												BuiltinPrecision16Storage32BitTests	(const BuiltinPrecisionTests&);		// not allowed!
-	BuiltinPrecision16Storage32BitTests&		operator=								(const BuiltinPrecisionTests&);		// not allowed!
+												BuiltinPrecision16Storage32BitTests	(const BuiltinPrecision16Storage32BitTests&) = delete;
+	BuiltinPrecision16Storage32BitTests&		operator=							(const BuiltinPrecision16Storage32BitTests&) = delete;
+};
+
+class BuiltinPrecisionDoubleTests : public tcu::TestCaseGroup
+{
+public:
+									BuiltinPrecisionDoubleTests			(tcu::TestContext& testCtx);
+	virtual							~BuiltinPrecisionDoubleTests		(void);
+
+	virtual void					init								(void);
+
+									BuiltinPrecisionDoubleTests			(const BuiltinPrecisionDoubleTests&) = delete;
+	BuiltinPrecisionDoubleTests&	operator=							(const BuiltinPrecisionDoubleTests&) = delete;
 };
 
 } // shaderexecutor
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinTests.cpp
index 0a1a4c6..6bc26db 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinTests.cpp
@@ -51,6 +51,7 @@
 	builtinTests->addChild(new BuiltinPrecisionTests(testCtx));
 	builtinTests->addChild(new BuiltinPrecision16BitTests(testCtx));
 	builtinTests->addChild(new BuiltinPrecision16Storage32BitTests(testCtx));
+	builtinTests->addChild(new BuiltinPrecisionDoubleTests(testCtx));
 	builtinTests->addChild(createPrecisionFconvertGroup(testCtx));
 
 	return builtinTests.release();
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp
index 6ae845e..d10cdd2 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp
@@ -804,6 +804,8 @@
 		int					elementSize		= 0;
 		int					numAttrsToAdd	= 1;
 
+		if (glu::isDataTypeDoubleOrDVec(basicType))
+			elementSize = sizeof(double);
 		if (glu::isDataTypeFloatOrVec(basicType))
 			elementSize = sizeof(float);
 		else if (glu::isDataTypeFloat16OrVec(basicType))
@@ -954,11 +956,12 @@
 
 		for (int outNdx = 0; outNdx < (int)m_outputLayout.locationSymbols.size(); ++outNdx)
 		{
+			const bool		isDouble	= glu::isDataTypeDoubleOrDVec(m_shaderSpec.outputs[outNdx].varType.getBasicType());
 			const bool		isFloat		= isDataTypeFloatOrVec(m_shaderSpec.outputs[outNdx].varType.getBasicType());
 			const bool		isFloat16b	= glu::isDataTypeFloat16OrVec(m_shaderSpec.outputs[outNdx].varType.getBasicType());
 			const bool		isSigned	= isDataTypeIntOrIVec (m_shaderSpec.outputs[outNdx].varType.getBasicType());
 			const bool		isBool		= isDataTypeBoolOrBVec(m_shaderSpec.outputs[outNdx].varType.getBasicType());
-			const VkFormat	colorFormat = isFloat16b ? VK_FORMAT_R16G16B16A16_SFLOAT : (isFloat ? VK_FORMAT_R32G32B32A32_SFLOAT : (isSigned || isBool ? VK_FORMAT_R32G32B32A32_SINT : VK_FORMAT_R32G32B32A32_UINT));
+			const VkFormat	colorFormat = (isDouble ? VK_FORMAT_R64G64B64A64_SFLOAT : (isFloat16b ? VK_FORMAT_R16G16B16A16_SFLOAT : (isFloat ? VK_FORMAT_R32G32B32A32_SFLOAT : (isSigned || isBool ? VK_FORMAT_R32G32B32A32_SINT : VK_FORMAT_R32G32B32A32_UINT))));
 
 			{
 				const VkFormatProperties	formatProperties	= getPhysicalDeviceFormatProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice(), colorFormat);
@@ -1518,21 +1521,21 @@
 
 static deUint32 getVecStd430ByteAlignment (glu::DataType type)
 {
-	switch (type)
+	deUint32 baseSize;
+
+	switch (glu::getDataTypeScalarType(type))
 	{
-		case glu::TYPE_FLOAT16:			return 2u;
-		case glu::TYPE_FLOAT16_VEC2:	return 4u;
-		case glu::TYPE_FLOAT16_VEC3:	return 8u;
-		case glu::TYPE_FLOAT16_VEC4:	return 8u;
-		default: break;
+		case glu::TYPE_FLOAT16:	baseSize = 2u; break;
+		case glu::TYPE_DOUBLE:	baseSize = 8u; break;
+		default:				baseSize = 4u; break;
 	}
 
 	switch (glu::getDataTypeScalarSize(type))
 	{
-		case 1:		return 4u;
-		case 2:		return 8u;
-		case 3:		return 16u;
-		case 4:		return 16u;
+		case 1:		return baseSize;
+		case 2:		return baseSize * 2u;;
+		case 3:		// fallthrough.
+		case 4:		return baseSize * 4u;
 		default:
 			DE_ASSERT(false);
 			return 0u;
@@ -1625,7 +1628,7 @@
 		if (glu::isDataTypeScalarOrVector(basicType))
 		{
 			const deUint32	alignment	= getVecStd430ByteAlignment(basicType);
-			const deUint32	size		= (deUint32)glu::getDataTypeScalarSize(basicType) * (isDataTypeFloat16OrVec(basicType) ? (int)sizeof(deUint16) : (int)sizeof(deUint32));
+			const deUint32	size		= (deUint32)glu::getDataTypeScalarSize(basicType) * (isDataTypeDoubleType(basicType) ? (int)(sizeof(deUint64)) : (isDataTypeFloat16OrVec(basicType) ? (int)sizeof(deUint16) : (int)sizeof(deUint32)));
 
 			curOffset		= (deUint32)deAlign32((int)curOffset, (int)alignment);
 			maxAlignment	= de::max(maxAlignment, alignment);
@@ -1638,8 +1641,8 @@
 		else if (glu::isDataTypeMatrix(basicType))
 		{
 			const int				numVecs			= glu::getDataTypeMatrixNumColumns(basicType);
-			const glu::DataType		vecType			= glu::getDataTypeFloatVec(glu::getDataTypeMatrixNumRows(basicType));
-			const deUint32			vecAlignment	= isDataTypeFloat16OrVec(basicType) ? getVecStd430ByteAlignment(vecType)/2 : getVecStd430ByteAlignment(vecType);
+			const glu::DataType		vecType			= glu::getDataTypeVector(glu::getDataTypeScalarType(basicType), glu::getDataTypeMatrixNumRows(basicType));
+			const deUint32			vecAlignment	= getVecStd430ByteAlignment(vecType);
 
 			curOffset		= (deUint32)deAlign32((int)curOffset, (int)vecAlignment);
 			maxAlignment	= de::max(maxAlignment, vecAlignment);
@@ -1766,7 +1769,7 @@
 		const int				scalarSize		= glu::getDataTypeScalarSize(basicType);
 		const int				numVecs			= isMatrix ? glu::getDataTypeMatrixNumColumns(basicType) : 1;
 		const int				numComps		= scalarSize / numVecs;
-		const int				size			= (glu::isDataTypeFloat16OrVec(basicType) ? (int)sizeof(deUint16) : (int)sizeof(deUint32));
+		const int				size			= (glu::isDataTypeDoubleType(basicType) ? (int)sizeof(deUint64) : (glu::isDataTypeFloat16OrVec(basicType) ? (int)sizeof(deUint16) : (int)sizeof(deUint32)));
 
 		for (int elemNdx = 0; elemNdx < numValues; elemNdx++)
 		{
@@ -1812,7 +1815,7 @@
 		{
 			for (int vecNdx = 0; vecNdx < numVecs; vecNdx++)
 			{
-				const int		size			= (glu::isDataTypeFloat16OrVec(basicType) ? (int)sizeof(deUint16) : (int)sizeof(deUint32));
+				const int		size			= (glu::isDataTypeDoubleType(basicType) ? (int)sizeof(deUint64) : (glu::isDataTypeFloat16OrVec(basicType) ? (int)sizeof(deUint16) : (int)sizeof(deUint32)));
 				const int		srcOffset		= layout.offset + layout.stride * elemNdx + (isMatrix ? layout.matrixStride * vecNdx : 0);
 				const int		dstOffset		= size * (elemNdx * scalarSize + vecNdx * numComps);
 				const deUint8*	srcPtr			= (const deUint8*)srcBasePtr + srcOffset;
@@ -1974,6 +1977,14 @@
 		return "%v3i32";
 	case glu::TYPE_INT_VEC4:
 		return "%v4i32";
+	case glu::TYPE_DOUBLE:
+		return "%f64";
+	case glu::TYPE_DOUBLE_VEC2:
+		return "%v2f64";
+	case glu::TYPE_DOUBLE_VEC3:
+		return "%v3f64";
+	case glu::TYPE_DOUBLE_VEC4:
+		return "%v4f64";
 	default:
 		DE_ASSERT(0);
 		return "";
@@ -2000,6 +2011,7 @@
 	{
 	case glu::TYPE_FLOAT16:
 	case glu::TYPE_FLOAT:
+	case glu::TYPE_DOUBLE:
 		src << "\n"
 			<< "%operation_result_" << operationNdx << " = " << operation << " %bool %in0_val %in1_val\n"
 			<< "OpSelectionMerge %IF_" << operationNdx << " None\n"
@@ -2014,14 +2026,17 @@
 		return src.str();
 	case glu::TYPE_FLOAT16_VEC2:
 	case glu::TYPE_FLOAT_VEC2:
+	case glu::TYPE_DOUBLE_VEC2:
 		boolType = "%v2bool";
 		break;
 	case glu::TYPE_FLOAT16_VEC3:
 	case glu::TYPE_FLOAT_VEC3:
+	case glu::TYPE_DOUBLE_VEC3:
 		boolType = "%v3bool";
 		break;
 	case glu::TYPE_FLOAT16_VEC4:
 	case glu::TYPE_FLOAT_VEC4:
+	case glu::TYPE_DOUBLE_VEC4:
 		boolType = "%v4bool";
 		break;
 	default:
@@ -2049,7 +2064,7 @@
 	return src.str();
 }
 
-std::string generateSpirv(const ShaderSpec& spec, const bool are16Bit, const bool isMediump)
+std::string generateSpirv(const ShaderSpec& spec, const bool are16Bit, const bool are64Bit, const bool isMediump)
 {
 	static const std::string COMPARE_OPERATIONS[] =
 	{
@@ -2073,7 +2088,8 @@
 
 	const bool			floatResult		= glu::isDataTypeFloatType(spec.outputs[0].varType.getBasicType());
 	const bool			packFloatRes	= (floatResult && spec.packFloat16Bit);
-	const bool			useF32Types		= (!are16Bit);
+	const bool			useF32Types		= (!are16Bit && !are64Bit);
+	const bool			useF64Types		= are64Bit;
 	const bool			useF16Types		= (spec.packFloat16Bit || are16Bit);
 
 	if (floatResult)
@@ -2094,6 +2110,9 @@
 		src << "OpCapability StorageBuffer16BitAccess\n"
 			"OpCapability UniformAndStorageBuffer16BitAccess\n";
 
+	if (useF64Types)
+		src << "OpCapability Float64\n";
+
 	if (are16Bit)
 		src << "OpExtension \"SPV_KHR_16bit_storage\"\n";
 
@@ -2113,7 +2132,7 @@
 			src << "OpMemberDecorate %SSB0_IN "<< ndx <<" Offset " << offset << "\n";
 			++ndx;
 			const int scalarSize = symIter->varType.getScalarSize();
-			offset += (scalarSize + ((scalarSize == 3) ? 1 : 0)) * (isDataTypeFloat16OrVec(symIter->varType.getBasicType()) ? (int)sizeof(deUint16) : (int)sizeof(deUint32));
+			offset += (scalarSize + ((scalarSize == 3) ? 1 : 0)) * (isDataTypeDoubleType(symIter->varType.getBasicType()) ? (int)sizeof(deUint64) : (isDataTypeFloat16OrVec(symIter->varType.getBasicType()) ? (int)sizeof(deUint16) : (int)sizeof(deUint32)));
 		}
 		src << "OpDecorate %up_SSB0_IN ArrayStride "<< offset << "\n";
 	}
@@ -2158,7 +2177,7 @@
 			src << "OpMemberDecorate %SSB0_OUT " << ndx << " Offset " << offset << "\n";
 			++ndx;
 			const int scalarSize = symIter->varType.getScalarSize();
-			offset += (scalarSize + ((scalarSize == 3) ? 1 : 0)) * (isDataTypeFloat16OrVec(symIter->varType.getBasicType()) ? (int)sizeof(deUint16) : (int)sizeof(deUint32));
+			offset += (scalarSize + ((scalarSize == 3) ? 1 : 0)) * (isDataTypeDoubleType(symIter->varType.getBasicType()) ? (int)sizeof(deUint64) : (isDataTypeFloat16OrVec(symIter->varType.getBasicType()) ? (int)sizeof(deUint16) : (int)sizeof(deUint32)));
 		}
 		src << "OpDecorate %up_SSB0_OUT ArrayStride " << offset << "\n";
 	}
@@ -2181,6 +2200,12 @@
 			"%v3f32 = OpTypeVector %f32 3\n"
 			"%v4f32 = OpTypeVector %f32 4\n";
 
+	if (useF64Types)
+		src << "%f64   = OpTypeFloat 64\n"
+			"%v2f64 = OpTypeVector %f64 2\n"
+			"%v3f64 = OpTypeVector %f64 3\n"
+			"%v4f64 = OpTypeVector %f64 4\n";
+
 	if (useF16Types)
 		src << "%f16   = OpTypeFloat 16\n"
 			"%v2f16 = OpTypeVector %f16 2\n"
@@ -2232,6 +2257,12 @@
 			"%c_f16_minus1 = OpConstant %f16 -0x1p+0"
 			;
 
+	if (useF64Types)
+		src <<
+			"%c_f64_0 = OpConstant %f64 0\n"
+			"%c_f64_1 = OpConstant %f64 1\n"
+		;
+
 	src << "\n"
 		"%c_v2i32_0 = OpConstantComposite %v2i32 %c_i32_0 %c_i32_0\n"
 		"%c_v2i32_1 = OpConstantComposite %v2i32 %c_i32_1 %c_i32_1\n"
@@ -2261,6 +2292,16 @@
 			"%c_v4f16_1 = OpConstantComposite %v4f16 %c_f16_1 %c_f16_1 %c_f16_1 %c_f16_1\n"
 			;
 
+	if (useF64Types)
+		src <<
+			"%c_v2f64_0 = OpConstantComposite %v2f64 %c_f64_0 %c_f64_0\n"
+			"%c_v2f64_1 = OpConstantComposite %v2f64 %c_f64_1 %c_f64_1\n"
+			"%c_v3f64_0 = OpConstantComposite %v3f64 %c_f64_0 %c_f64_0 %c_f64_0\n"
+			"%c_v3f64_1 = OpConstantComposite %v3f64 %c_f64_1 %c_f64_1 %c_f64_1\n"
+			"%c_v4f64_0 = OpConstantComposite %v4f64 %c_f64_0 %c_f64_0 %c_f64_0 %c_f64_0\n"
+			"%c_v4f64_1 = OpConstantComposite %v4f64 %c_f64_1 %c_f64_1 %c_f64_1 %c_f64_1\n"
+			;
+
 	src << "\n"
 		"%SSB0_IN    = OpTypeStruct " << inputType1 << " " << inputType2 << "\n"
 		"%up_SSB0_IN = OpTypeRuntimeArray %SSB0_IN\n"
@@ -2469,12 +2510,16 @@
 	if (spec.spirvCase != SPIRV_CASETYPE_NONE)
 	{
 		bool	are16Bit	= false;
+		bool	are64Bit	= false;
 		bool	isMediump	= false;
 		for (vector<Symbol>::const_iterator symIter = spec.inputs.begin(); symIter != spec.inputs.end(); ++symIter)
 		{
 			if (glu::isDataTypeFloat16OrVec(symIter->varType.getBasicType()))
 				are16Bit = true;
 
+			if (glu::isDataTypeDoubleType(symIter->varType.getBasicType()))
+				are64Bit = true;
+
 			if (symIter->varType.getPrecision() == glu::PRECISION_MEDIUMP)
 				isMediump = true;
 
@@ -2482,7 +2527,7 @@
 				break;
 		}
 
-		return generateSpirv(spec, are16Bit, isMediump);
+		return generateSpirv(spec, are16Bit, are64Bit, isMediump);
 	}
 	else
 	{
@@ -3313,6 +3358,33 @@
 	return false;
 }
 
+bool ShaderExecutor::areInputs64Bit (void) const
+{
+	for (vector<Symbol>::const_iterator symIter = m_shaderSpec.inputs.begin(); symIter != m_shaderSpec.inputs.end(); ++symIter)
+	{
+		if (glu::isDataTypeDoubleType(symIter->varType.getBasicType()))
+			return true;
+	}
+	return false;
+}
+
+bool ShaderExecutor::areOutputs64Bit (void) const
+{
+	for (vector<Symbol>::const_iterator symIter = m_shaderSpec.outputs.begin(); symIter != m_shaderSpec.outputs.end(); ++symIter)
+	{
+		if (glu::isDataTypeDoubleType(symIter->varType.getBasicType()))
+			return true;
+	}
+	return false;
+}
+
+bool ShaderExecutor::isOutput64Bit (const size_t ndx) const
+{
+	if (glu::isDataTypeDoubleType(m_shaderSpec.outputs[ndx].varType.getBasicType()))
+		return true;
+	return false;
+}
+
 // Utilities
 
 void generateSources (glu::ShaderType shaderType, const ShaderSpec& shaderSpec, vk::SourceCollections& dst)
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.hpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.hpp
index c827a96..7c07584 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.hpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.hpp
@@ -91,6 +91,9 @@
 	bool					areInputs16Bit		(void) const;
 	bool					areOutputs16Bit		(void) const;
 	bool					isOutput16Bit		(const size_t ndx) const;
+	bool					areInputs64Bit		(void) const;
+	bool					areOutputs64Bit		(void) const;
+	bool					isOutput64Bit		(const size_t ndx) const;
 	bool					isSpirVShader		(void) { return (m_shaderSpec.spirvCase != SPIRV_CASETYPE_NONE); }
 	SpirVCaseT				spirvCase			(void) { return m_shaderSpec.spirvCase; }
 
diff --git a/external/vulkancts/modules/vulkan/shaderrender/CMakeLists.txt b/external/vulkancts/modules/vulkan/shaderrender/CMakeLists.txt
index b4b5582..817a463 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/shaderrender/CMakeLists.txt
@@ -14,6 +14,8 @@
 	vktShaderRenderDiscardTests.hpp
 	vktShaderRenderIndexingTests.cpp
 	vktShaderRenderIndexingTests.hpp
+	vktShaderRenderInvarianceTests.hpp
+	vktShaderRenderInvarianceTests.cpp
 	vktShaderRenderLimitTests.cpp
 	vktShaderRenderLimitTests.hpp
 	vktShaderRenderLoopTests.cpp
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp
index d90c096..46aa0da 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp
@@ -131,12 +131,12 @@
 
 TestStatus BuiltinGlFrontFacingCaseInstance::iterate (void)
 {
-	TestLog&					log				= m_context.getTestContext().getLog();
-	std::vector<Vec4>			vertices;
-	std::vector<VulkanShader>	shaders;
-	FrontFacingVertexShader		vertexShader;
-	FrontFacingFragmentShader	fragmentShader;
-	std::string					testDesc;
+	TestLog&							log				= m_context.getTestContext().getLog();
+	std::vector<Vec4>					vertices;
+	std::vector<VulkanShader>			shaders;
+	std::shared_ptr<rr::VertexShader>	vertexShader	= std::make_shared<FrontFacingVertexShader>();
+	std::shared_ptr<rr::FragmentShader>	fragmentShader	= std::make_shared<FrontFacingFragmentShader>();
+	std::string							testDesc;
 
 	vertices.push_back(Vec4( -0.75f,	-0.75f,	0.0f,	1.0f));
 	vertices.push_back(Vec4(  0.0f,		-0.75f,	0.0f,	1.0f));
@@ -150,14 +150,16 @@
 
 	testDesc = "gl_FrontFacing " + getPrimitiveTopologyShortName(m_topology) + " ";
 
-	DrawState					drawState		(m_topology, FRONTFACE_RENDERWIDTH, FRONTFACE_RENDERHEIGHT, m_context.getDeviceProperties().limits.subPixelPrecisionBits);
-	DrawCallData				drawCallData	(vertices);
-	VulkanProgram				vulkanProgram	(shaders);
-
-	VulkanDrawContext			dc(m_context, drawState, drawCallData, vulkanProgram);
+	FrameBufferState			frameBufferState	(FRONTFACE_RENDERWIDTH, FRONTFACE_RENDERHEIGHT);
+	PipelineState				pipelineState		(m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+	DrawCallData				drawCallData		(m_topology, vertices);
+	VulkanProgram				vulkanProgram		(shaders);
+	VulkanDrawContext			dc					(m_context, frameBufferState);
+	dc.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 	dc.draw();
 
-	ReferenceDrawContext		refDrawContext(drawState, drawCallData, vertexShader, fragmentShader);
+	ReferenceDrawContext		refDrawContext(frameBufferState);
+	refDrawContext.registerDrawObject(pipelineState, vertexShader, fragmentShader, drawCallData);
 	refDrawContext.draw();
 
 	log << TestLog::Image( "reference",
@@ -753,22 +755,24 @@
 		shaders.push_back(VulkanShader(VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("FragDepthVert")));
 		shaders.push_back(VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("FragDepthFrag")));
 
-		DrawState				drawState(m_topology, m_renderSize.x(), m_renderSize.y(), m_context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData			drawCallData(vertices);
-		VulkanProgram			vulkanProgram(shaders);
+		FrameBufferState			frameBufferState(m_renderSize.x(), m_renderSize.y());
+		PipelineState				pipelineState(m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+		DrawCallData				drawCallData(m_topology, vertices);
+		VulkanProgram				vulkanProgram(shaders);
 
-		drawState.depthClampEnable			= m_depthClampEnable;
-		drawState.depthFormat				= m_format;
-		drawState.numSamples				= m_samples;
-		drawState.compareOp					= rr::TESTFUNC_ALWAYS;
-		drawState.depthTestEnable			= true;
-		drawState.depthWriteEnable			= true;
-		drawState.sampleShadingEnable		= true;
-		vulkanProgram.depthImageView		= *depthImageView;
+		frameBufferState.depthFormat		= m_format;
+		frameBufferState.numSamples			= m_samples;
+		frameBufferState.depthImageView		= *depthImageView;
+		pipelineState.depthClampEnable		= m_depthClampEnable;
+		pipelineState.compareOp				= rr::TESTFUNC_ALWAYS;
+		pipelineState.depthTestEnable		= true;
+		pipelineState.depthWriteEnable		= true;
+		pipelineState.sampleShadingEnable	= true;
 		vulkanProgram.descriptorSetLayout	= *descriptorSetLayout;
 		vulkanProgram.descriptorSet			= *descriptorSet;
 
-		VulkanDrawContext		vulkanDrawContext(m_context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext			vulkanDrawContext(m_context, frameBufferState);
+		vulkanDrawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		vulkanDrawContext.draw();
 
 		log << TestLog::Image(	"resultColor",
@@ -897,16 +901,18 @@
 		shaders.push_back(VulkanShader(VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("FragDepthVertPass2")));
 		shaders.push_back(VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("FragDepthFragPass2")));
 
-		DrawState				drawState(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, m_renderSize.x(), m_renderSize.y(), m_context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData			drawCallData(vertices);
-		VulkanProgram			vulkanProgram(shaders);
+		FrameBufferState			frameBufferState(m_renderSize.x(), m_renderSize.y());
+		PipelineState				pipelineState(m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+		DrawCallData				drawCallData(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, vertices);
+		VulkanProgram				vulkanProgram(shaders);
 
-		drawState.numSamples				= m_samples;
-		drawState.sampleShadingEnable		= true;
-		vulkanProgram.descriptorSetLayout	= *descriptorSetLayout;
-		vulkanProgram.descriptorSet			= *descriptorSet;
+		frameBufferState.numSamples				= m_samples;
+		pipelineState.sampleShadingEnable		= true;
+		vulkanProgram.descriptorSetLayout		= *descriptorSetLayout;
+		vulkanProgram.descriptorSet				= *descriptorSet;
 
-		VulkanDrawContext		vulkanDrawContext(m_context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext		vulkanDrawContext(m_context, frameBufferState);
+		vulkanDrawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		vulkanDrawContext.draw();
 	}
 
@@ -1239,16 +1245,18 @@
 		shaders.push_back(VulkanShader(VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("FragCoordMsaaVert")));
 		shaders.push_back(VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("FragCoordMsaaFrag")));
 
-		DrawState			drawState(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, m_renderSize.x(), m_renderSize.y(), m_context.getDeviceProperties().limits.subPixelPrecisionBits);
-		DrawCallData		drawCallData(vertices);
-		VulkanProgram		vulkanProgram(shaders);
+		FrameBufferState			frameBufferState(m_renderSize.x(), m_renderSize.y());
+		PipelineState				pipelineState(m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+		DrawCallData				drawCallData(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, vertices);
+		VulkanProgram				vulkanProgram(shaders);
 
-		drawState.numSamples				= m_sampleCount;
-		drawState.sampleShadingEnable		= true;
+		frameBufferState.numSamples				= m_sampleCount;
+		pipelineState.sampleShadingEnable		= true;
 		vulkanProgram.descriptorSetLayout	= *descriptorSetLayout;
 		vulkanProgram.descriptorSet			= *descriptorSet;
 
-		VulkanDrawContext	vulkanDrawContext(m_context, drawState, drawCallData, vulkanProgram);
+		VulkanDrawContext			vulkanDrawContext(m_context, frameBufferState);
+		vulkanDrawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
 		vulkanDrawContext.draw();
 
 		log << TestLog::Image(	"result",
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.cpp
new file mode 100644
index 0000000..1dbaeb6
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.cpp
@@ -0,0 +1,861 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2018 Google Inc.
+ *
+ * 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 Invariant decoration tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktShaderRenderInvarianceTests.hpp"
+#include "vktShaderRender.hpp"
+#include "tcuImageCompare.hpp"
+#include "tcuStringTemplate.hpp"
+#include "tcuTextureUtil.hpp"
+#include "tcuTestLog.hpp"
+#include "vktDrawUtil.hpp"
+#include "deMath.h"
+#include "deRandom.hpp"
+
+using namespace vk;
+
+namespace vkt
+{
+using namespace drawutil;
+
+namespace sr
+{
+
+namespace
+{
+
+class FormatArgument
+{
+public:
+						FormatArgument (const char* name, const std::string& value);
+
+private:
+	friend class FormatArgumentList;
+
+	const char* const	m_name;
+	const std::string	m_value;
+};
+
+FormatArgument::FormatArgument (const char* name, const std::string& value)
+	: m_name	(name)
+	, m_value	(value)
+{
+}
+
+class FormatArgumentList
+{
+public:
+												FormatArgumentList	(void);
+
+	FormatArgumentList&							operator<<			(const FormatArgument&);
+	const std::map<std::string, std::string>&	getArguments		(void) const;
+
+private:
+	std::map<std::string, std::string>			m_formatArguments;
+};
+
+FormatArgumentList::FormatArgumentList (void)
+{
+}
+
+FormatArgumentList&	FormatArgumentList::operator<< (const FormatArgument& arg)
+{
+	m_formatArguments[arg.m_name] = arg.m_value;
+	return *this;
+}
+
+const std::map<std::string, std::string>& FormatArgumentList::getArguments (void) const
+{
+	return m_formatArguments;
+}
+
+static std::string formatGLSL(const char* templateString, const FormatArgumentList& args)
+{
+	const std::map<std::string, std::string>& params = args.getArguments();
+
+	return tcu::StringTemplate(std::string(templateString)).specialize(params);
+}
+
+class InvarianceTest : public vkt::TestCase
+{
+public:
+								InvarianceTest(tcu::TestContext& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader = "");
+
+	void						initPrograms	(SourceCollections& sourceCollections) const override;
+	vkt::TestInstance*			createInstance	(vkt::Context& context) const override;
+
+private:
+	const std::string			m_vertexShader1;
+	const std::string			m_vertexShader2;
+	const std::string			m_fragmentShader;
+};
+
+class InvarianceTestInstance : public vkt::TestInstance
+{
+public:
+						InvarianceTestInstance(vkt::Context &context);
+	tcu::TestStatus		iterate(void) override;
+	bool				checkImage(const tcu::ConstPixelBufferAccess& image) const;
+	const int			m_renderSize = 256;
+};
+
+ InvarianceTest::InvarianceTest(tcu::TestContext& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader)
+	: vkt::TestCase(ctx, name, desc)
+	, m_vertexShader1(vertexShader1)
+	, m_vertexShader2(vertexShader2)
+	, m_fragmentShader(fragmentShader)
+
+{
+}
+
+void InvarianceTest::initPrograms(SourceCollections& sourceCollections) const
+{
+	sourceCollections.glslSources.add("vertex1") << glu::VertexSource(m_vertexShader1);
+	sourceCollections.glslSources.add("vertex2") << glu::VertexSource(m_vertexShader2);
+	sourceCollections.glslSources.add("fragment") << glu::FragmentSource(m_fragmentShader);
+}
+
+vkt::TestInstance* InvarianceTest::createInstance(Context& context) const
+{
+	return new InvarianceTestInstance(context);
+}
+
+InvarianceTestInstance::InvarianceTestInstance(vkt::Context &context)
+	: vkt::TestInstance(context)
+{
+}
+
+static tcu::Vec4 genRandomVector(de::Random& rnd)
+{
+	tcu::Vec4 retVal;
+
+	retVal.x() = rnd.getFloat(-1.0f, 1.0f);
+	retVal.y() = rnd.getFloat(-1.0f, 1.0f);
+	retVal.z() = rnd.getFloat(-1.0f, 1.0f);
+	retVal.w() = rnd.getFloat(0.2f, 1.0f);
+
+	return retVal;
+}
+
+struct ColorUniform
+{
+	tcu::Vec4 color;
+};
+
+tcu::TestStatus InvarianceTestInstance::iterate(void)
+{
+	const VkDevice			device			= m_context.getDevice();
+	const DeviceInterface&	vk				= m_context.getDeviceInterface();
+	Allocator&				allocator		= m_context.getDefaultAllocator();
+	tcu::TestLog&			log				= m_context.getTestContext().getLog();
+
+	const int				numTriangles	= 72;
+	de::Random				rnd				(123);
+	std::vector<tcu::Vec4>	vertices		(numTriangles * 3 * 2);
+
+	{
+		// Narrow triangle pattern
+		for (int triNdx = 0; triNdx < numTriangles; ++triNdx)
+		{
+			const tcu::Vec4 vertex1 = genRandomVector(rnd);
+			const tcu::Vec4 vertex2 = genRandomVector(rnd);
+			const tcu::Vec4 vertex3 = vertex2 + genRandomVector(rnd) * 0.01f; // generate narrow triangles
+
+			vertices[triNdx * 3 + 0] = vertex1;
+			vertices[triNdx * 3 + 1] = vertex2;
+			vertices[triNdx * 3 + 2] = vertex3;
+		}
+
+		// Normal triangle pattern
+		for (int triNdx = 0; triNdx < numTriangles; ++triNdx)
+		{
+			vertices[(numTriangles + triNdx) * 3 + 0] = genRandomVector(rnd);
+			vertices[(numTriangles + triNdx) * 3 + 1] = genRandomVector(rnd);
+			vertices[(numTriangles + triNdx) * 3 + 2] = genRandomVector(rnd);
+		}
+	}
+
+	Move<VkDescriptorSetLayout>		descriptorSetLayout;
+	Move<VkDescriptorPool>			descriptorPool;
+	Move<VkBuffer>					uniformBuffer[2];
+	de::MovePtr<Allocation>			uniformBufferAllocation[2];
+	Move<VkDescriptorSet>			descriptorSet[2];
+	const tcu::Vec4					red		= tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f);
+	const tcu::Vec4					green	= tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f);
+
+	// Descriptors
+	{
+		DescriptorSetLayoutBuilder	layoutBuilder;
+		layoutBuilder.addSingleBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT);
+		descriptorSetLayout = layoutBuilder.build(vk, device);
+		descriptorPool = DescriptorPoolBuilder()
+				.addType(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2u)
+				.build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 2u);
+
+		const VkDescriptorSetAllocateInfo descriptorSetAllocInfo =
+		{
+			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
+			DE_NULL,
+			*descriptorPool,
+			1u,
+			&descriptorSetLayout.get()
+		};
+
+		const VkBufferCreateInfo uniformBufferCreateInfo =
+		{
+			VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,					// VkStructureType		sType
+			DE_NULL,												// const void*			pNext
+			(VkBufferCreateFlags)0,									// VkBufferCreateFlags	flags
+			sizeof(ColorUniform),									// VkDeviceSize			size
+			VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,						// VkBufferUsageFlags	usage
+			VK_SHARING_MODE_EXCLUSIVE,								// VkSharingMode		sharingMode
+			0u,														// deUint32				queueFamilyIndexCount
+			DE_NULL													// pQueueFamilyIndices
+		};
+
+		for (deUint32 passNdx = 0; passNdx < 2; ++passNdx)
+		{
+			uniformBuffer[passNdx]				= createBuffer(vk, device, &uniformBufferCreateInfo, DE_NULL);
+			uniformBufferAllocation[passNdx]	= allocator.allocate(getBufferMemoryRequirements(vk, device, *uniformBuffer[passNdx]), MemoryRequirement::HostVisible);
+			VK_CHECK(vk.bindBufferMemory(device, *uniformBuffer[passNdx], uniformBufferAllocation[passNdx]->getMemory(), uniformBufferAllocation[passNdx]->getOffset()));
+
+			{
+				ColorUniform* bufferData	= (ColorUniform*)(uniformBufferAllocation[passNdx]->getHostPtr());
+				bufferData->color			= (passNdx == 0) ? (red) : (green);
+				flushAlloc(vk, device, *uniformBufferAllocation[passNdx]);
+			}
+			descriptorSet[passNdx] = allocateDescriptorSet(vk, device, &descriptorSetAllocInfo);
+
+			const VkDescriptorBufferInfo bufferInfo =
+			{
+				*uniformBuffer[passNdx],
+				0u,
+				VK_WHOLE_SIZE
+			};
+
+			DescriptorSetUpdateBuilder()
+				.writeSingle(*descriptorSet[passNdx], DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &bufferInfo)
+				.update(vk, device);
+		}
+	}
+
+	// pick first available depth buffer format
+	const std::vector<VkFormat>	depthFormats	{ VK_FORMAT_D32_SFLOAT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_X8_D24_UNORM_PACK32, VK_FORMAT_D24_UNORM_S8_UINT };
+	VkFormat					depthFormat		= VK_FORMAT_UNDEFINED;
+	const InstanceInterface&	vki				= m_context.getInstanceInterface();
+	const VkPhysicalDevice		vkPhysDevice	= m_context.getPhysicalDevice();
+	for (const auto& df : depthFormats)
+	{
+		const VkFormatProperties	properties = getPhysicalDeviceFormatProperties(vki, vkPhysDevice, df);
+		if ((properties.optimalTilingFeatures & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT) == VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)
+		{
+			depthFormat = df;
+			break;
+		}
+	}
+	if(depthFormat == VK_FORMAT_UNDEFINED)
+		return tcu::TestStatus::fail("There must be at least one depth depth format handled (Vulkan spec 37.3, table 65)");
+
+	FrameBufferState				frameBufferState(m_renderSize, m_renderSize);
+	frameBufferState.depthFormat	= depthFormat;
+	PipelineState					pipelineState(m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+	DrawCallData					drawCallData(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, vertices);
+	VulkanDrawContext				vulkanDrawContext(m_context, frameBufferState);
+
+	const std::vector<std::string>				vertexShaderNames	= { "vertex1", "vertex2" };
+
+	log << tcu::TestLog::Message << "Testing position invariance." << tcu::TestLog::EndMessage;
+
+	for (deUint32 passNdx = 0; passNdx < 2; ++passNdx)
+	{
+		std::vector<VulkanShader>			shaders;
+		shaders.push_back(VulkanShader(VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get(vertexShaderNames[passNdx])));
+		shaders.push_back(VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("fragment")));
+		VulkanProgram						vulkanProgram(shaders);
+		vulkanProgram.descriptorSetLayout	= *descriptorSetLayout;
+		vulkanProgram.descriptorSet			= *descriptorSet[passNdx];
+
+		const char* const			colorStr = (passNdx == 0) ? ("red - purple") : ("green");
+		log << tcu::TestLog::Message << "Drawing position test pattern using shader " << (passNdx + 1) << ". Primitive color: " << colorStr << "." << tcu::TestLog::EndMessage;
+
+		vulkanDrawContext.registerDrawObject(pipelineState, vulkanProgram, drawCallData);
+	}
+	vulkanDrawContext.draw();
+
+	tcu::ConstPixelBufferAccess	resultImage(
+		tcu::TextureFormat(vulkanDrawContext.getColorPixels().getFormat()),
+		vulkanDrawContext.getColorPixels().getWidth(),
+		vulkanDrawContext.getColorPixels().getHeight(),
+		1,
+		vulkanDrawContext.getColorPixels().getDataPtr());
+
+	log << tcu::TestLog::Message << "Verifying output. Expecting only green or background colored pixels." << tcu::TestLog::EndMessage;
+	if( !checkImage(resultImage) )
+		return tcu::TestStatus::fail("Detected variance between two invariant values");
+
+	return tcu::TestStatus::pass("Passed");
+}
+
+bool InvarianceTestInstance::checkImage(const tcu::ConstPixelBufferAccess& image) const
+{
+	const tcu::IVec4	okColor		(0, 255, 0, 255);
+	const tcu::RGBA		errColor	(255, 0, 0, 255);
+	bool				error		= false;
+	tcu::Surface		errorMask	(image.getWidth(), image.getHeight());
+
+	tcu::clear(errorMask.getAccess(), okColor);
+
+	for (int y = 0; y < m_renderSize; ++y)
+		for (int x = 0; x < m_renderSize; ++x)
+		{
+			const tcu::IVec4 col = image.getPixelInt(x, y);
+
+			if (col.x() != 0)
+			{
+				errorMask.setPixel(x, y, errColor);
+				error = true;
+			}
+		}
+
+	// report error
+	if (error)
+	{
+		m_context.getTestContext().getLog() << tcu::TestLog::Message << "Invalid pixels found (fragments from first render pass found). Variance detected." << tcu::TestLog::EndMessage;
+		m_context.getTestContext().getLog()
+			<< tcu::TestLog::ImageSet("Results", "Result verification")
+			<< tcu::TestLog::Image("Result", "Result", image)
+			<< tcu::TestLog::Image("Error mask", "Error mask", errorMask)
+			<< tcu::TestLog::EndImageSet;
+
+		return false;
+	}
+	else
+	{
+		m_context.getTestContext().getLog() << tcu::TestLog::Message << "No variance found." << tcu::TestLog::EndMessage;
+		m_context.getTestContext().getLog()
+			<< tcu::TestLog::ImageSet("Results", "Result verification")
+			<< tcu::TestLog::Image("Result", "Result", image)
+			<< tcu::TestLog::EndImageSet;
+
+		return true;
+	}
+}
+
+} // namespace
+
+tcu::TestCaseGroup* createShaderInvarianceTests (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup> invarianceGroup(new tcu::TestCaseGroup(testCtx, "invariance", "Invariance tests"));
+
+	static const struct PrecisionCase
+	{
+		glu::Precision	prec;
+		const char*		name;
+
+		// set literals in the glsl to be in the representable range
+		const char*		highValue;		// !< highValue < maxValue
+		const char*		invHighValue;
+		const char*		mediumValue;	// !< mediumValue^2 < maxValue
+		const char*		lowValue;		// !< lowValue^4 < maxValue
+		const char*		invlowValue;
+		int				loopIterations;
+		int				loopPartialIterations;
+		int				loopNormalizationExponent;
+		const char*		loopNormalizationConstantLiteral;
+		const char*		loopMultiplier;
+		const char*		sumLoopNormalizationConstantLiteral;
+	} precisions[] =
+	{
+		{ glu::PRECISION_HIGHP,		"highp",	"1.0e20",	"1.0e-20",	"1.0e14",	"1.0e9",	"1.0e-9",	14,	11,	2,	"1.0e4",	"1.9",	"1.0e3"	},
+		{ glu::PRECISION_MEDIUMP,	"mediump",	"1.0e4",	"1.0e-4",	"1.0e2",	"1.0e1",	"1.0e-1",	13,	11,	2,	"1.0e4",	"1.9",	"1.0e3"	},
+		{ glu::PRECISION_LOWP,		"lowp",		"0.9",		"1.1",		"1.1",		"1.15",		"0.87",		6,	2,	0,	"2.0",		"1.1",	"1.0"	},
+	};
+
+	static const std::string invariantDeclaration[]	= { "invariant gl_Position;", "layout(location = 1) invariant highp out vec4 v_value;" };
+	static const std::string invariantAssignment0[]	= { "gl_Position", "v_value" };
+	static const std::string invariantAssignment1[]	= { "", "gl_Position = v_value;" };
+	static const std::string fragDeclaration[]		= { "", "layout(location = 1) highp in vec4 v_value;" };
+
+	static const char* basicFragmentShader = "${VERSION}"
+		"precision mediump float;\n"
+		"${IN} vec4 v_unrelated;\n"
+		"${FRAG_DECLARATION}\n"
+		"layout(binding = 0) uniform ColorUniform\n"
+		"{\n"
+		"	vec4 u_color;\n"
+		"} ucolor;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main ()\n"
+		"{\n"
+		"	float blue = dot(v_unrelated, vec4(1.0, 1.0, 1.0, 1.0));\n"
+		"	fragColor = vec4(ucolor.u_color.r, ucolor.u_color.g, blue, ucolor.u_color.a);\n"
+		"}\n";
+
+	for (int precNdx = 0; precNdx < DE_LENGTH_OF_ARRAY(precisions); ++precNdx)
+	{
+		const char* const			precisionName = precisions[precNdx].name;
+		const glu::Precision		precision = precisions[precNdx].prec;
+		tcu::TestCaseGroup* const	group = new tcu::TestCaseGroup(testCtx, precisionName, "Invariance tests using the given precision.");
+
+		const deUint32 VAR_GROUP_SIZE = 2u;
+		tcu::TestCaseGroup* varGroup[VAR_GROUP_SIZE];
+		varGroup[0] = new tcu::TestCaseGroup(testCtx, "gl_position", "Invariance tests using gl_Position variable");
+		varGroup[1] = new tcu::TestCaseGroup(testCtx, "user_defined", "Invariance tests using user defined variable");
+		FormatArgumentList	args[VAR_GROUP_SIZE];
+		for (deUint32 groupNdx = 0u; groupNdx < VAR_GROUP_SIZE; ++groupNdx)
+		{
+			group->addChild(varGroup[groupNdx]);
+			args[groupNdx] = FormatArgumentList()
+				<< FormatArgument("VERSION",				"#version 450\n")
+				<< FormatArgument("IN",						"layout(location = 0) in")
+				<< FormatArgument("OUT",					"layout(location = 0) out")
+				<< FormatArgument("IN_PREC",				precisionName)
+				<< FormatArgument("INVARIANT_DECLARATION",	invariantDeclaration[groupNdx])
+				<< FormatArgument("INVARIANT_ASSIGN_0",		invariantAssignment0[groupNdx])
+				<< FormatArgument("INVARIANT_ASSIGN_1",		invariantAssignment1[groupNdx])
+				<< FormatArgument("FRAG_DECLARATION",		fragDeclaration[groupNdx])
+				<< FormatArgument("HIGH_VALUE",				de::toString(precisions[precNdx].highValue))
+				<< FormatArgument("HIGH_VALUE_INV",			de::toString(precisions[precNdx].invHighValue))
+				<< FormatArgument("MEDIUM_VALUE",			de::toString(precisions[precNdx].mediumValue))
+				<< FormatArgument("LOW_VALUE",				de::toString(precisions[precNdx].lowValue))
+				<< FormatArgument("LOW_VALUE_INV",			de::toString(precisions[precNdx].invlowValue))
+				<< FormatArgument("LOOP_ITERS",				de::toString(precisions[precNdx].loopIterations))
+				<< FormatArgument("LOOP_ITERS_PARTIAL",		de::toString(precisions[precNdx].loopPartialIterations))
+				<< FormatArgument("LOOP_NORM_FRACT_EXP",	de::toString(precisions[precNdx].loopNormalizationExponent))
+				<< FormatArgument("LOOP_NORM_LITERAL",		precisions[precNdx].loopNormalizationConstantLiteral)
+				<< FormatArgument("LOOP_MULTIPLIER",		precisions[precNdx].loopMultiplier)
+				<< FormatArgument("SUM_LOOP_NORM_LITERAL",	precisions[precNdx].sumLoopNormalizationConstantLiteral);
+		}
+
+		// subexpression cases
+		for (deUint32 groupNdx = 0u; groupNdx < VAR_GROUP_SIZE; ++groupNdx)
+		{
+			// First shader shares "${HIGH_VALUE}*a_input.x*a_input.xxxx + ${HIGH_VALUE}*a_input.y*a_input.yyyy" with unrelated output variable. Reordering might result in accuracy loss
+			// due to the high exponent. In the second shader, the high exponent may be removed during compilation.
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "common_subexpression_0", "Shader shares a subexpression with an unrelated variable.",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	v_unrelated = a_input.xzxz + (${HIGH_VALUE}*a_input.x*a_input.xxxx + ${HIGH_VALUE}*a_input.y*a_input.yyyy) * (1.08 * a_input.zyzy * a_input.xzxz) * ${HIGH_VALUE_INV} * (a_input.z * a_input.zzxz - a_input.z * a_input.zzxz) + (${HIGH_VALUE}*a_input.x*a_input.xxxx + ${HIGH_VALUE}*a_input.y*a_input.yyyy) / ${HIGH_VALUE};\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + (${HIGH_VALUE}*a_input.x*a_input.xxxx + ${HIGH_VALUE}*a_input.y*a_input.yyyy) * ${HIGH_VALUE_INV};\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + (${HIGH_VALUE}*a_input.x*a_input.xxxx + ${HIGH_VALUE}*a_input.y*a_input.yyyy) * ${HIGH_VALUE_INV};\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+
+			// In the first shader, the unrelated variable "d" has mathematically the same expression as "e", but the different
+			// order of calculation might cause different results.
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "common_subexpression_1", "Shader shares a subexpression with an unrelated variable.",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 a = ${HIGH_VALUE} * a_input.zzxx + a_input.xzxy - ${HIGH_VALUE} * a_input.zzxx;\n"
+					"	${IN_PREC} vec4 b = ${HIGH_VALUE} * a_input.zzxx;\n"
+					"	${IN_PREC} vec4 c = b - ${HIGH_VALUE} * a_input.zzxx + a_input.xzxy;\n"
+					"	${IN_PREC} vec4 d = (${LOW_VALUE} * a_input.yzxx) * (${LOW_VALUE} * a_input.yzzw) * (1.1*${LOW_VALUE_INV} * a_input.yzxx) * (${LOW_VALUE_INV} * a_input.xzzy);\n"
+					"	${IN_PREC} vec4 e = ((${LOW_VALUE} * a_input.yzxx) * (1.1*${LOW_VALUE_INV} * a_input.yzxx)) * ((${LOW_VALUE_INV} * a_input.xzzy) * (${LOW_VALUE} * a_input.yzzw));\n"
+					"	v_unrelated = a + b + c + d + e;\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + fract(c) + e;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 b = ${HIGH_VALUE} * a_input.zzxx;\n"
+					"	${IN_PREC} vec4 c = b - ${HIGH_VALUE} * a_input.zzxx + a_input.xzxy;\n"
+					"	${IN_PREC} vec4 e = ((${LOW_VALUE} * a_input.yzxx) * (1.1*${LOW_VALUE_INV} * a_input.yzxx)) * ((${LOW_VALUE_INV} * a_input.xzzy) * (${LOW_VALUE} * a_input.yzzw));\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + fract(c) + e;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+
+			// Intermediate values used by an unrelated output variable
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "common_subexpression_2", "Shader shares a subexpression with an unrelated variable.",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 a = ${MEDIUM_VALUE} * (a_input.xxxx + a_input.yyyy);\n"
+					"	${IN_PREC} vec4 b = (${MEDIUM_VALUE} * (a_input.xxxx + a_input.yyyy)) * (${MEDIUM_VALUE} * (a_input.xxxx + a_input.yyyy)) / ${MEDIUM_VALUE} / ${MEDIUM_VALUE};\n"
+					"	${IN_PREC} vec4 c = a * a;\n"
+					"	${IN_PREC} vec4 d = c / ${MEDIUM_VALUE} / ${MEDIUM_VALUE};\n"
+					"	v_unrelated = a + b + c + d;\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + d;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 a = ${MEDIUM_VALUE} * (a_input.xxxx + a_input.yyyy);\n"
+					"	${IN_PREC} vec4 c = a * a;\n"
+					"	${IN_PREC} vec4 d = c / ${MEDIUM_VALUE} / ${MEDIUM_VALUE};\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + d;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+
+			// Invariant value can be calculated using unrelated value
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "common_subexpression_3", "Shader shares a subexpression with an unrelated variable.",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} float x = a_input.x * 0.2;\n"
+					"	${IN_PREC} vec4 a = a_input.xxyx * 0.7;\n"
+					"	${IN_PREC} vec4 b = a_input.yxyz * 0.7;\n"
+					"	${IN_PREC} vec4 c = a_input.zxyx * 0.5;\n"
+					"	${IN_PREC} vec4 f = x*a + x*b + x*c;\n"
+					"	v_unrelated = f;\n"
+					"	${IN_PREC} vec4 g = x * (a + b + c);\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + g;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} float x = a_input.x * 0.2;\n"
+					"	${IN_PREC} vec4 a = a_input.xxyx * 0.7;\n"
+					"	${IN_PREC} vec4 b = a_input.yxyz * 0.7;\n"
+					"	${IN_PREC} vec4 c = a_input.zxyx * 0.5;\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${IN_PREC} vec4 g = x * (a + b + c);\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + g;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+		}
+
+		// shared subexpression of different precision
+		for (deUint32 groupNdx = 0u; groupNdx < VAR_GROUP_SIZE; ++groupNdx)
+		{
+			for (int precisionOther = glu::PRECISION_LOWP; precisionOther != glu::PRECISION_LAST; ++precisionOther)
+			{
+				const char* const		unrelatedPrec = glu::getPrecisionName((glu::Precision)precisionOther);
+				const glu::Precision	minPrecision = (precisionOther < (int)precision) ? ((glu::Precision)precisionOther) : (precision);
+				const char* const		multiplierStr = (minPrecision == glu::PRECISION_LOWP) ? ("0.8, 0.4, -0.2, 0.3") : ("1.0e1, 5.0e2, 2.0e2, 1.0");
+				const char* const		normalizationStrUsed = (minPrecision == glu::PRECISION_LOWP) ? ("vec4(fract(used2).xyz, 0.0)") : ("vec4(fract(used2 / 1.0e2).xyz - fract(used2 / 1.0e3).xyz, 0.0)");
+				const char* const		normalizationStrUnrelated = (minPrecision == glu::PRECISION_LOWP) ? ("vec4(fract(unrelated2).xyz, 0.0)") : ("vec4(fract(unrelated2 / 1.0e2).xyz - fract(unrelated2 / 1.0e3).xyz, 0.0)");
+
+				varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, ("subexpression_precision_" + std::string(unrelatedPrec)).c_str(), "Shader shares subexpression of different precision with an unrelated variable.",
+					formatGLSL("${VERSION}"
+						"${IN} ${IN_PREC} vec4 a_input;\n"
+						"${OUT} ${UNRELATED_PREC} vec4 v_unrelated;\n"
+						"${INVARIANT_DECLARATION}\n"
+						"void main ()\n"
+						"{\n"
+						"	${UNRELATED_PREC} vec4 unrelated0 = a_input + vec4(0.1, 0.2, 0.3, 0.4);\n"
+						"	${UNRELATED_PREC} vec4 unrelated1 = vec4(${MULTIPLIER}) * unrelated0.xywz + unrelated0;\n"
+						"	${UNRELATED_PREC} vec4 unrelated2 = refract(unrelated1, unrelated0, distance(unrelated0, unrelated1));\n"
+						"	v_unrelated = a_input + 0.02 * ${NORMALIZE_UNRELATED};\n"
+						"	${IN_PREC} vec4 used0 = a_input + vec4(0.1, 0.2, 0.3, 0.4);\n"
+						"	${IN_PREC} vec4 used1 = vec4(${MULTIPLIER}) * used0.xywz + used0;\n"
+						"	${IN_PREC} vec4 used2 = refract(used1, used0, distance(used0, used1));\n"
+						"	${INVARIANT_ASSIGN_0} = a_input + 0.02 * ${NORMALIZE_USED};\n"
+						"	${INVARIANT_ASSIGN_1}\n"
+						"}\n", FormatArgumentList(args[groupNdx])
+						<< FormatArgument("UNRELATED_PREC", unrelatedPrec)
+						<< FormatArgument("MULTIPLIER", multiplierStr)
+						<< FormatArgument("NORMALIZE_USED", normalizationStrUsed)
+						<< FormatArgument("NORMALIZE_UNRELATED", normalizationStrUnrelated)),
+					formatGLSL("${VERSION}"
+						"${IN} ${IN_PREC} vec4 a_input;\n"
+						"${OUT} ${UNRELATED_PREC} vec4 v_unrelated;\n"
+						"${INVARIANT_DECLARATION}\n"
+						"void main ()\n"
+						"{\n"
+						"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+						"	${IN_PREC} vec4 used0 = a_input + vec4(0.1, 0.2, 0.3, 0.4);\n"
+						"	${IN_PREC} vec4 used1 = vec4(${MULTIPLIER}) * used0.xywz + used0;\n"
+						"	${IN_PREC} vec4 used2 = refract(used1, used0, distance(used0, used1));\n"
+						"	${INVARIANT_ASSIGN_0} = a_input + 0.02 * ${NORMALIZE_USED};\n"
+						"	${INVARIANT_ASSIGN_1}\n"
+						"}\n", FormatArgumentList(args[groupNdx])
+						<< FormatArgument("UNRELATED_PREC", unrelatedPrec)
+						<< FormatArgument("MULTIPLIER", multiplierStr)
+						<< FormatArgument("NORMALIZE_USED", normalizationStrUsed)
+						<< FormatArgument("NORMALIZE_UNRELATED", normalizationStrUnrelated)),
+					formatGLSL("${VERSION}"
+						"precision mediump float;\n"
+						"${IN} ${UNRELATED_PREC} vec4 v_unrelated;\n"
+						"${FRAG_DECLARATION}\n"
+						"layout(binding = 0) uniform ColorUniform\n"
+						"{\n"
+						"	vec4 u_color;\n"
+						"} ucolor;\n"
+						"${OUT} vec4 fragColor;\n"
+						"void main ()\n"
+						"{\n"
+						"	float blue = dot(v_unrelated, vec4(1.0, 1.0, 1.0, 1.0));\n"
+						"	fragColor = vec4(ucolor.u_color.r, ucolor.u_color.g, blue, ucolor.u_color.a);\n"
+						"}\n", FormatArgumentList(args[groupNdx])
+						<< FormatArgument("UNRELATED_PREC", unrelatedPrec)
+						<< FormatArgument("MULTIPLIER", multiplierStr)
+						<< FormatArgument("NORMALIZE_USED", normalizationStrUsed)
+						<< FormatArgument("NORMALIZE_UNRELATED", normalizationStrUnrelated))));
+			}
+		}
+
+		// loops
+		for (deUint32 groupNdx = 0u; groupNdx < VAR_GROUP_SIZE; ++groupNdx)
+		{
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "loop_0", "Invariant value set using a loop",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} highp vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"		v_unrelated += value;\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_0} = vec4(value.xyz / ${LOOP_NORM_LITERAL} + a_input.xyz * 0.1, 1.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} highp vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_0} = vec4(value.xyz / ${LOOP_NORM_LITERAL} + a_input.xyz * 0.1, 1.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"precision mediump float;\n"
+					"layout(location=0) in highp vec4 v_unrelated;\n"
+					"${FRAG_DECLARATION}\n"
+					"layout(binding = 0) uniform ColorUniform\n"
+					"{\n"
+					"	vec4 u_color;\n"
+					"} ucolor;\n"
+					"layout(location = 0) out vec4 fragColor;\n"
+					"void main ()\n"
+					"{\n"
+					"	float blue = dot(v_unrelated, vec4(1.0, 1.0, 1.0, 1.0));\n"
+					"	fragColor = vec4(ucolor.u_color.r, ucolor.u_color.g, blue, ucolor.u_color.a);\n"
+					"}\n", args[groupNdx])));
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "loop_1", "Invariant value set using a loop",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"		if (i == ${LOOP_ITERS_PARTIAL})\n"
+					"			v_unrelated = value;\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_0} = vec4(value.xyz / ${LOOP_NORM_LITERAL} + a_input.xyz * 0.1, 1.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_0} = vec4(value.xyz / ${LOOP_NORM_LITERAL} + a_input.xyz * 0.1, 1.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "loop_2", "Invariant value set using a loop",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, -1.0, 1.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"		if (i == ${LOOP_ITERS_PARTIAL})\n"
+					"			${INVARIANT_ASSIGN_0} = a_input + 0.05 * vec4(fract(value.xyz / 1.0e${LOOP_NORM_FRACT_EXP}), 1.0);\n"
+					"		else\n"
+					"			v_unrelated = value + a_input;\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"	}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, -1.0, 1.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"		if (i == ${LOOP_ITERS_PARTIAL})\n"
+					"			${INVARIANT_ASSIGN_0} = a_input + 0.05 * vec4(fract(value.xyz / 1.0e${LOOP_NORM_FRACT_EXP}), 1.0);\n"
+					"		else\n"
+					"			v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"	}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "loop_3", "Invariant value set using a loop",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	${INVARIANT_ASSIGN_0} = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"		${INVARIANT_ASSIGN_0} += vec4(value.xyz / ${SUM_LOOP_NORM_LITERAL} + a_input.xyz * 0.1, 1.0);\n"
+					"		v_unrelated = ${INVARIANT_ASSIGN_0}.xyzx * a_input;\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 value = a_input;\n"
+					"	${INVARIANT_ASSIGN_0} = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value *= ${LOOP_MULTIPLIER};\n"
+					"		${INVARIANT_ASSIGN_0} += vec4(value.xyz / ${SUM_LOOP_NORM_LITERAL} + a_input.xyz * 0.1, 1.0);\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+
+			varGroup[groupNdx]->addChild(new InvarianceTest(testCtx, "loop_4", "Invariant value set using a loop",
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 position = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${IN_PREC} vec4 value1 = a_input;\n"
+					"	${IN_PREC} vec4 value2 = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value1 *= ${LOOP_MULTIPLIER};\n"
+					"		v_unrelated = v_unrelated*1.3 + a_input.xyzx * value1.xyxw;\n"
+					"	}\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value2 *= ${LOOP_MULTIPLIER};\n"
+					"		position = position*1.3 + a_input.xyzx * value2.xyxw;\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + 0.05 * vec4(fract(position.xyz / 1.0e${LOOP_NORM_FRACT_EXP}), 1.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL("${VERSION}"
+					"${IN} ${IN_PREC} vec4 a_input;\n"
+					"${OUT} mediump vec4 v_unrelated;\n"
+					"${INVARIANT_DECLARATION}\n"
+					"void main ()\n"
+					"{\n"
+					"	${IN_PREC} vec4 position = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	${IN_PREC} vec4 value2 = a_input;\n"
+					"	v_unrelated = vec4(0.0, 0.0, 0.0, 0.0);\n"
+					"	for (mediump int i = 0; i < ${LOOP_ITERS}; ++i)\n"
+					"	{\n"
+					"		value2 *= ${LOOP_MULTIPLIER};\n"
+					"		position = position*1.3 + a_input.xyzx * value2.xyxw;\n"
+					"	}\n"
+					"	${INVARIANT_ASSIGN_0} = a_input + 0.05 * vec4(fract(position.xyz / 1.0e${LOOP_NORM_FRACT_EXP}), 1.0);\n"
+					"	${INVARIANT_ASSIGN_1}\n"
+					"}\n", args[groupNdx]),
+				formatGLSL(basicFragmentShader, args[groupNdx])));
+		}
+		invarianceGroup->addChild(group);
+	}
+	return invarianceGroup.release();
+}
+
+} // namespace sr
+
+} // namespace vkt
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.hpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.hpp
new file mode 100644
index 0000000..c39925a
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderInvarianceTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTSHADERRENDERINVARIANCETESTS_HPP
+#define _VKTSHADERRENDERINVARIANCETESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2018 Google Inc.
+ *
+ * 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 Invariant decoration tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace sr
+{
+
+tcu::TestCaseGroup*	createShaderInvarianceTests(tcu::TestContext& testCtx);
+
+} // sr
+} // vkt
+
+#endif // _VKTSHADERRENDERINVARIANCETESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp
index 166be86..cdeb0f3 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp
@@ -1284,32 +1284,8 @@
 	std::ostringstream	vert;
 	std::ostringstream	frag;
 	std::ostringstream&	op		= isVtxCase ? vert : frag;
-	glu::GLSLVersion	version	= glu::GLSL_VERSION_LAST;
 
-	switch (m_textureSpec.type)
-	{
-		case TEXTURETYPE_2D:
-		case TEXTURETYPE_3D:
-		case TEXTURETYPE_CUBE_MAP:
-		case TEXTURETYPE_2D_ARRAY:
-			version = glu::GLSL_VERSION_310_ES;
-			break;
-
-		case TEXTURETYPE_1D:
-		case TEXTURETYPE_1D_ARRAY:
-		case TEXTURETYPE_CUBE_ARRAY:
-			version = glu::GLSL_VERSION_420;
-			break;
-
-		default:
-			DE_ASSERT(DE_FALSE);
-			break;
-	}
-
-	if (m_lookupSpec.useClamp)
-		version = glu::GLSL_VERSION_450;
-
-	vert << glu::getGLSLVersionDeclaration(version) << "\n"
+	vert << "#version 450 core\n"
 		 << "layout(location = 0) in highp vec4 a_position;\n"
 		 << "layout(location = 4) in " << coordPrecName << " " << coordTypeName << " a_in0;\n";
 
@@ -1321,7 +1297,7 @@
 	else if (hasLodBias)
 		vert << "layout(location = 5) in " << coordPrecName << " float a_in1;\n";
 
-	frag << glu::getGLSLVersionDeclaration(version) << "\n";
+	frag << "#version 450 core\n";
 
 	if (m_lookupSpec.useClamp)
 		frag << "#extension GL_ARB_sparse_texture_clamp : require\n";
@@ -1357,10 +1333,9 @@
 	   << "layout(set = 0, binding = 1) uniform buf0 { highp vec4 u_scale; };\n"
 	   << "layout(set = 0, binding = 2) uniform buf1 { highp vec4 u_bias; };\n";
 
-	if (version != glu::GLSL_VERSION_310_ES)
-		vert << "out gl_PerVertex {\n"
-			 << "\tvec4 gl_Position;\n"
-			 << "};\n";
+	vert << "out gl_PerVertex {\n"
+		 << "\tvec4 gl_Position;\n"
+		 << "};\n";
 
 	vert << "\nvoid main()\n{\n"
 		 << "\tgl_Position = a_position;\n";
@@ -2724,40 +2699,13 @@
 	std::ostringstream		vert;
 	std::ostringstream		frag;
 	std::ostringstream&		op			= m_isVertexCase ? vert : frag;
-	glu::GLSLVersion		version		= glu::GLSL_VERSION_LAST;
 
 	DE_ASSERT(m_function != QUERYFUNCTION_TEXTUREQUERYLOD || !m_isVertexCase);
 
-	switch (m_function)
-	{
-		case QUERYFUNCTION_TEXTURESIZE:
-			if (m_textureSpec.type == TEXTURETYPE_1D || m_textureSpec.type == TEXTURETYPE_1D_ARRAY || m_textureSpec.type == TEXTURETYPE_CUBE_ARRAY)
-				version = glu::GLSL_VERSION_420;
-			else
-				version = glu::GLSL_VERSION_310_ES;
-			break;
-
-		case QUERYFUNCTION_TEXTUREQUERYLOD:
-			version = glu::GLSL_VERSION_420;
-			break;
-
-		case QUERYFUNCTION_TEXTUREQUERYLEVELS:
-			version = glu::GLSL_VERSION_430;
-			break;
-
-		case QUERYFUNCTION_TEXTURESAMPLES:
-			version = glu::GLSL_VERSION_450;
-			break;
-
-		default:
-			DE_ASSERT(false);
-			break;
-	}
-
-	vert << glu::getGLSLVersionDeclaration(version) << "\n"
+	vert << "#version 450 core\n"
 		 << "layout(location = 0) in highp vec4 a_position;\n";
 
-	frag << glu::getGLSLVersionDeclaration(version) << "\n"
+	frag << "#version 450 core\n"
 		 << "layout(location = 0) out mediump vec4 o_color;\n";
 
 	if (m_isVertexCase)
@@ -2781,10 +2729,9 @@
 	if (m_function == QUERYFUNCTION_TEXTURESIZE)
 		op << "layout(set = 0, binding = 1) uniform buf0 { highp int u_lod; };\n";
 
-	if (version != glu::GLSL_VERSION_310_ES)
-		vert << "out gl_PerVertex {\n"
-			 << "\tvec4 gl_Position;\n"
-			 << "};\n";
+	vert << "out gl_PerVertex {\n"
+		 << "\tvec4 gl_Position;\n"
+		 << "};\n";
 
 	vert << "\nvoid main()\n{\n"
 		 << "\tgl_Position = a_position;\n";
@@ -4014,9 +3961,9 @@
 		GRAD_CASE_SPEC(usamplercubearray,		FUNCTION_TEXTUREGRAD,	Vec4(-1.0f, -1.0f, -1.01f, -0.5f),	Vec4( 1.0f,  1.0f, -1.01f,  1.5f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.2f,  0.0f),	false,	IVec3(0),	texCubeArrayMipmapUint,		evalTextureCubeArrayGrad,	BOTH),
 
 		GRAD_CASE_SPEC(sampler2dshadow,			FUNCTION_TEXTUREGRAD,	Vec4(-0.2f, -0.4f,  0.0f,  0.0f),	Vec4( 1.5f,  2.3f,  1.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.2f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	false,	IVec3(0),	tex2DMipmapShadow,		evalTexture2DShadowGrad,		BOTH),
-		GRAD_CASE_SPEC(samplercubeshadow,		FUNCTION_TEXTUREGRAD,	Vec4(-1.0f, -1.0f,  1.01f,  0.0f),	Vec4( 1.0f,  1.0f,  1.01f,  1.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.2f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	false,	IVec3(0),	texCubeMipmapShadow,	evalTextureCubeShadowGrad,		BOTH),
-		GRAD_CASE_SPEC(sampler2darrayshadow,	FUNCTION_TEXTUREGRAD,	Vec4(-1.2f, -0.4f,  -0.5f,  0.0f),	Vec4( 1.5f,  2.3f,  3.5f,  1.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.2f,  0.0f,  0.0f),	false,	IVec3(0),	tex2DArrayMipmapShadow,	evalTexture2DArrayShadowGrad,	VERTEX),
-		GRAD_CASE_SPEC(sampler2darrayshadow,	FUNCTION_TEXTUREGRAD,	Vec4(-1.2f, -0.4f,  -0.5f,  0.0f),	Vec4( 1.5f,  2.3f,  3.5f,  1.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f, -0.2f,  0.0f),	false,	IVec3(0),	tex2DArrayMipmapShadow,	evalTexture2DArrayShadowGrad,	FRAGMENT),
+		GRAD_CASE_SPEC(samplercubeshadow,		FUNCTION_TEXTUREGRAD,	Vec4(-1.0f, -1.0f,  1.01f, 0.0f),	Vec4( 1.0f,  1.0f,  1.01f, 1.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f, -0.2f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	false,	IVec3(0),	texCubeMipmapShadow,	evalTextureCubeShadowGrad,		BOTH),
+		GRAD_CASE_SPEC(sampler2darrayshadow,	FUNCTION_TEXTUREGRAD,	Vec4(-1.2f, -0.4f, -0.5f,  0.0f),	Vec4( 1.5f,  2.3f,  3.5f,  1.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.2f,  0.0f,  0.0f),	false,	IVec3(0),	tex2DArrayMipmapShadow,	evalTexture2DArrayShadowGrad,	VERTEX),
+		GRAD_CASE_SPEC(sampler2darrayshadow,	FUNCTION_TEXTUREGRAD,	Vec4(-1.2f, -0.4f, -0.5f,  0.0f),	Vec4( 1.5f,  2.3f,  3.5f,  1.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f, -0.2f,  0.0f),	false,	IVec3(0),	tex2DArrayMipmapShadow,	evalTexture2DArrayShadowGrad,	FRAGMENT),
 		GRAD_CASE_SPEC(sampler1dshadow,			FUNCTION_TEXTUREGRAD,	Vec4(-0.2f,  0.0f,  0.0f,  0.0f),	Vec4( 1.5f,  0.0f,  1.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.2f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	false,	IVec3(0),	tex1DMipmapShadow,		evalTexture1DShadowGrad,		BOTH),
 		GRAD_CASE_SPEC(sampler1darrayshadow,	FUNCTION_TEXTUREGRAD,	Vec4(-1.2f, -0.5f,  0.0f,  0.0f),	Vec4( 1.5f,  3.5f,  1.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.2f,  0.0f,  0.0f),	false,	IVec3(0),	tex1DArrayMipmapShadow,	evalTexture1DArrayShadowGrad,	VERTEX),
 		GRAD_CASE_SPEC(sampler1darrayshadow,	FUNCTION_TEXTUREGRAD,	Vec4(-1.2f, -0.5f,  0.0f,  0.0f),	Vec4( 1.5f,  3.5f,  1.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3( 0.0f,  0.0f,  0.0f),	Vec3(-0.2f,  0.0f,  0.0f),	false,	IVec3(0),	tex1DArrayMipmapShadow,	evalTexture1DArrayShadowGrad,	FRAGMENT),
diff --git a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseBinding.cpp b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseBinding.cpp
index c0e753d..dca01da 100755
--- a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseBinding.cpp
+++ b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseBinding.cpp
@@ -180,9 +180,6 @@
 			imageSparseInfo.flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
 		}
 
-		if (!checkSparseSupportForImageFormat(instance, physicalDevice, imageSparseInfo))
-			TCU_THROW(NotSupportedError, "The image format does not support sparse operations");
-
 		{
 			VkImageFormatProperties imageFormatProperties;
 			if (instance.getPhysicalDeviceImageFormatProperties(physicalDevice,
@@ -193,7 +190,7 @@
 				imageSparseInfo.flags,
 				&imageFormatProperties) == VK_ERROR_FORMAT_NOT_SUPPORTED)
 			{
-				TCU_THROW(NotSupportedError, "Image format does not support sparse operations");
+				TCU_THROW(NotSupportedError, "Image format does not support sparse binding operations");
 			}
 
 			imageSparseInfo.mipLevels = getMipmapCount(m_format, formatDescription, imageFormatProperties, imageSparseInfo.extent);
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm8bitStorageTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm8bitStorageTests.cpp
index 6c625d5..9b6aafb 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm8bitStorageTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm8bitStorageTests.cpp
@@ -1567,6 +1567,7 @@
 			spec.extensions.push_back("VK_KHR_8bit_storage");
 			spec.extensions.push_back("VK_KHR_storage_buffer_storage_class");
 			spec.requestedVulkanFeatures = get8BitStorageFeatures(CAPABILITIES[STORAGE_BUFFER_TEST].name);
+			spec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM;
 
 			group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), testName.c_str(), spec));
 		}
@@ -1724,6 +1725,7 @@
 			spec.extensions.push_back("VK_KHR_16bit_storage");
 			spec.extensions.push_back("VK_KHR_storage_buffer_storage_class");
 			spec.requestedVulkanFeatures = get8BitStorageFeatures(CAPABILITIES[UNIFORM_AND_STORAGEBUFFER_TEST].name);
+			spec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM;
 
 			if (cTypes[tyIdx].componentsCount == 4)
 				spec.verifyIO = checkUniformsArray<deInt8, deInt16, 4>;
@@ -1895,6 +1897,7 @@
 			spec.extensions.push_back("VK_KHR_16bit_storage");
 			spec.extensions.push_back("VK_KHR_storage_buffer_storage_class");
 			spec.requestedVulkanFeatures.ext8BitStorage = EXT8BITSTORAGEFEATURES_PUSH_CONSTANT;
+			spec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM;
 
 			group->addChild(new SpvAsmComputeShaderCase(testCtx, testName, testName, spec));
 		}
@@ -3693,6 +3696,7 @@
 			fragments["decoration"]			= categories[catIdx].decoration.specialize(specs);
 
 			features												= get8BitStorageFeatures(CAPABILITIES[UNIFORM_AND_STORAGEBUFFER_TEST].name);
+			features.ext16BitStorage								= EXT16BITSTORAGEFEATURES_UNIFORM;
 			features.coreFeatures.vertexPipelineStoresAndAtomics	= true;
 			features.coreFeatures.fragmentStoresAndAtomics			= true;
 
@@ -3973,6 +3977,7 @@
 				}
 
 				features												= get8BitStorageFeatures(CAPABILITIES[UNIFORM_AND_STORAGEBUFFER_TEST].name);
+				features.ext16BitStorage								= EXT16BITSTORAGEFEATURES_UNIFORM;
 				features.coreFeatures.vertexPipelineStoresAndAtomics	= true;
 				features.coreFeatures.fragmentStoresAndAtomics			= true;
 
@@ -4029,6 +4034,7 @@
 	requiredFeatures.coreFeatures.vertexPipelineStoresAndAtomics	= true;
 	requiredFeatures.coreFeatures.fragmentStoresAndAtomics			= true;
 	requiredFeatures.ext8BitStorage									= EXT8BITSTORAGEFEATURES_PUSH_CONSTANT;
+	requiredFeatures.ext16BitStorage								= EXT16BITSTORAGEFEATURES_UNIFORM;
 
 	fragments["capability"]				= "OpCapability StoragePushConstant8\n"
 										  "OpCapability StorageUniform16\n";
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
index bfe5d71..868267f 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
@@ -326,7 +326,7 @@
 
 		specInfo.mapEntryCount		= numSpecConstants;
 		specInfo.pMapEntries		= &entries[0];
-		specInfo.dataSize			= numSpecConstants * sizeof(deUint32);
+		specInfo.dataSize			= offset;
 		specInfo.pData				= specConstants.getValuesBuffer();
 	}
 
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
index 6f2c5c0..d847f84 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
@@ -4650,31 +4650,43 @@
 
 			if (deMemCmp(&expectedBytes.front(), outResourceMemories[outputNdx]->getHostPtr(), expectedBytes.size()))
 			{
-				// Some *variable_pointers* tests store counters in buffer
-				// whose value may vary if the same vertex shader may be executed for multiple times
-				// in this case the output value can be expected value + non-negative integer N
-				if (instance.customizedStages == VK_SHADER_STAGE_VERTEX_BIT)
-				{
-					const size_t	numExpectedEntries	= expectedBytes.size() / sizeof(float);
-					const float*	expectedFloats		= reinterpret_cast<const float*>(&expectedBytes.front());
-					const float*	outputFloats		= reinterpret_cast<const float*>(outResourceMemories[outputNdx]->getHostPtr());
-					float			diff				= 0.0f;
+				const size_t	numExpectedEntries	= expectedBytes.size() / sizeof(float);
+				float*			expectedFloats		= reinterpret_cast<float*>(&expectedBytes.front());
+				float*			outputFloats		= reinterpret_cast<float*>(outResourceMemories[outputNdx]->getHostPtr());
+				float			diff				= 0.0f;
+				deUint32		bitDiff				= 0;
 
-					for (size_t expectedNdx = 0; expectedNdx < numExpectedEntries; ++expectedNdx)
+				for (size_t expectedNdx = 0; expectedNdx < numExpectedEntries; ++expectedNdx)
+				{
+					// RTZ and RNE can introduce a difference of a single ULP
+					// The RTZ output will always be either equal or lower than the RNE expected,
+					// so perform a bitwise subtractraction and check for the ULP difference
+					bitDiff = *reinterpret_cast<deUint32*>(&expectedFloats[expectedNdx]) - *reinterpret_cast<deUint32*>(&outputFloats[expectedNdx]);
+
+					// Allow a maximum of 1 ULP difference to account for RTZ rounding
+					if (bitDiff & (~0x1))
 					{
-						if (deFloatIsInf(outputFloats[expectedNdx]) || deFloatIsNaN(outputFloats[expectedNdx]))
-							return tcu::TestStatus::fail("Value returned is invalid");
+						// Note: RTZ/RNE rounding leniency isn't applied for the checks below:
 
-						diff = outputFloats[expectedNdx] - expectedFloats[expectedNdx];
+						// Some *variable_pointers* tests store counters in buffer
+						// whose value may vary if the same vertex shader may be executed for multiple times
+						// in this case the output value can be expected value + non-negative integer N
+						if (instance.customizedStages == VK_SHADER_STAGE_VERTEX_BIT)
+						{
+							if (deFloatIsInf(outputFloats[expectedNdx]) || deFloatIsNaN(outputFloats[expectedNdx]))
+								return tcu::TestStatus::fail("Value returned is invalid");
 
-						if ((diff < 0.0f) || (deFloatFloor(diff) != diff))
-							return tcu::TestStatus::fail("Value returned should be equal to expected value plus non-negative integer");
+							diff = outputFloats[expectedNdx] - expectedFloats[expectedNdx];
+
+							if ((diff < 0.0f) || (deFloatFloor(diff) != diff))
+								return tcu::TestStatus::fail("Value returned should be equal to expected value plus non-negative integer");
+						}
+						else
+						{
+							return tcu::TestStatus::fail("Resource returned should be equal to expected, allowing for RTZ/RNE rounding");
+						}
 					}
 				}
-				else
-				{
-					return tcu::TestStatus::fail("Resource returned doesn't match bitwisely with expected");
-				}
 			}
 
 		}
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
index d671615..7bd28c8 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
@@ -23,6 +23,7 @@
  *//*--------------------------------------------------------------------*/
 
 #include "vktSpvAsmInstructionTests.hpp"
+#include "vktAmberTestCase.hpp"
 
 #include "tcuCommandLine.hpp"
 #include "tcuFormatUtil.hpp"
@@ -3135,6 +3136,28 @@
 //   }
 // }
 
+void addOpUnreachableAmberTests(tcu::TestCaseGroup& group, tcu::TestContext& testCtx)
+{
+	static const char dataDir[] = "spirv_assembly/instruction/compute/unreachable";
+
+	struct Case
+	{
+		string	name;
+		string	desc;
+	};
+
+	static const Case cases[] =
+	{
+		{ "unreachable-switch-merge-in-loop",	"Test containing an unreachable switch merge block inside an infinite loop"	},
+	};
+
+	for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i)
+	{
+		const string fileName = cases[i].name + ".amber";
+		group.addChild(cts_amber::createAmberTestCase(testCtx, cases[i].name.c_str(), cases[i].desc.c_str(), dataDir, fileName));
+	}
+}
+
 tcu::TestCaseGroup* createOpUnreachableGroup (tcu::TestContext& testCtx)
 {
 	de::MovePtr<tcu::TestCaseGroup>	group			(new tcu::TestCaseGroup(testCtx, "opunreachable", "Test the OpUnreachable instruction"));
@@ -3244,6 +3267,8 @@
 
 	group->addChild(new SpvAsmComputeShaderCase(testCtx, "all", "OpUnreachable appearing at different places", spec));
 
+	addOpUnreachableAmberTests(*group, testCtx);
+
 	return group.release();
 }
 
@@ -3415,54 +3440,218 @@
 	return group.release();
 }
 
-struct SpecConstantTwoIntCase
+enum SpecConstantType
 {
-	const char*		caseName;
-	const char*		scDefinition0;
-	const char*		scDefinition1;
-	const char*		scResultType;
-	const char*		scOperation;
-	deInt32			scActualValue0;
-	deInt32			scActualValue1;
-	const char*		resultOperation;
-	vector<deInt32>	expectedOutput;
-	deInt32			scActualValueLength;
-
-					SpecConstantTwoIntCase (const char* name,
-											const char* definition0,
-											const char* definition1,
-											const char* resultType,
-											const char* operation,
-											deInt32 value0,
-											deInt32 value1,
-											const char* resultOp,
-											const vector<deInt32>& output,
-											const deInt32	valueLength = sizeof(deInt32))
-						: caseName				(name)
-						, scDefinition0			(definition0)
-						, scDefinition1			(definition1)
-						, scResultType			(resultType)
-						, scOperation			(operation)
-						, scActualValue0		(value0)
-						, scActualValue1		(value1)
-						, resultOperation		(resultOp)
-						, expectedOutput		(output)
-						, scActualValueLength	(valueLength)
-						{}
+	SC_INT8,
+	SC_UINT8,
+	SC_INT16,
+	SC_UINT16,
+	SC_INT32,
+	SC_UINT32,
+	SC_INT64,
+	SC_UINT64,
+	SC_FLOAT16,
+	SC_FLOAT32,
+	SC_FLOAT64,
 };
 
+struct SpecConstantValue
+{
+	SpecConstantType type;
+	union ValueUnion {
+		deInt8			i8;
+		deUint8			u8;
+		deInt16			i16;
+		deUint16		u16;
+		deInt32			i32;
+		deUint32		u32;
+		deInt64			i64;
+		deUint64		u64;
+		tcu::Float16	f16;
+		tcu::Float32	f32;
+		tcu::Float64	f64;
+
+		ValueUnion (deInt8			v) : i8(v)	{}
+		ValueUnion (deUint8			v) : u8(v)	{}
+		ValueUnion (deInt16			v) : i16(v)	{}
+		ValueUnion (deUint16		v) : u16(v)	{}
+		ValueUnion (deInt32			v) : i32(v)	{}
+		ValueUnion (deUint32		v) : u32(v)	{}
+		ValueUnion (deInt64			v) : i64(v)	{}
+		ValueUnion (deUint64		v) : u64(v)	{}
+		ValueUnion (tcu::Float16	v) : f16(v)	{}
+		ValueUnion (tcu::Float32	v) : f32(v)	{}
+		ValueUnion (tcu::Float64	v) : f64(v)	{}
+	} value;
+
+	SpecConstantValue (deInt8			v) : type(SC_INT8)		, value(v) {}
+	SpecConstantValue (deUint8			v) : type(SC_UINT8)		, value(v) {}
+	SpecConstantValue (deInt16			v) : type(SC_INT16)		, value(v) {}
+	SpecConstantValue (deUint16			v) : type(SC_UINT16)	, value(v) {}
+	SpecConstantValue (deInt32			v) : type(SC_INT32)		, value(v) {}
+	SpecConstantValue (deUint32			v) : type(SC_UINT32)	, value(v) {}
+	SpecConstantValue (deInt64			v) : type(SC_INT64)		, value(v) {}
+	SpecConstantValue (deUint64			v) : type(SC_UINT64)	, value(v) {}
+	SpecConstantValue (tcu::Float16		v) : type(SC_FLOAT16)	, value(v) {}
+	SpecConstantValue (tcu::Float32		v) : type(SC_FLOAT32)	, value(v) {}
+	SpecConstantValue (tcu::Float64		v) : type(SC_FLOAT64)	, value(v) {}
+
+	void appendTo(vkt::SpirVAssembly::SpecConstants& specConstants)
+	{
+		switch (type)
+		{
+		case SC_INT8:		specConstants.append(value.i8);		break;
+		case SC_UINT8:		specConstants.append(value.u8);		break;
+		case SC_INT16:		specConstants.append(value.i16);	break;
+		case SC_UINT16:		specConstants.append(value.u16);	break;
+		case SC_INT32:		specConstants.append(value.i32);	break;
+		case SC_UINT32:		specConstants.append(value.u32);	break;
+		case SC_INT64:		specConstants.append(value.i64);	break;
+		case SC_UINT64:		specConstants.append(value.u64);	break;
+		case SC_FLOAT16:	specConstants.append(value.f16);	break;
+		case SC_FLOAT32:	specConstants.append(value.f32);	break;
+		case SC_FLOAT64:	specConstants.append(value.f64);	break;
+		default:
+			DE_ASSERT(false);
+		}
+	}
+};
+
+enum CaseFlagBits
+{
+	FLAG_NONE		= 0,
+	FLAG_CONVERT	= 1,
+	FLAG_I8			= (1<<1),
+	FLAG_I16		= (1<<2),
+	FLAG_I64		= (1<<3),
+	FLAG_F16		= (1<<4),
+	FLAG_F64		= (1<<5),
+};
+using CaseFlags = deUint32;
+
+struct SpecConstantTwoValCase
+{
+	const std::string	caseName;
+	const std::string	scDefinition0;
+	const std::string	scDefinition1;
+	const std::string	scResultType;
+	const std::string	scOperation;
+	SpecConstantValue	scActualValue0;
+	SpecConstantValue	scActualValue1;
+	const std::string	resultOperation;
+	vector<deInt32>		expectedOutput;
+	CaseFlags			caseFlags;
+
+						SpecConstantTwoValCase (const std::string& name,
+												const std::string& definition0,
+												const std::string& definition1,
+												const std::string& resultType,
+												const std::string& operation,
+												SpecConstantValue value0,
+												SpecConstantValue value1,
+												const std::string& resultOp,
+												const vector<deInt32>& output,
+												CaseFlags flags = FLAG_NONE)
+							: caseName				(name)
+							, scDefinition0			(definition0)
+							, scDefinition1			(definition1)
+							, scResultType			(resultType)
+							, scOperation			(operation)
+							, scActualValue0		(value0)
+							, scActualValue1		(value1)
+							, resultOperation		(resultOp)
+							, expectedOutput		(output)
+							, caseFlags				(flags)
+							{}
+};
+
+std::string getSpecConstantOpStructConstantsAndTypes ()
+{
+	return
+		"%zero        = OpConstant %i32 0\n"
+		"%one         = OpConstant %i32 1\n"
+		"%two         = OpConstant %i32 2\n"
+		"%three       = OpConstant %i32 3\n"
+		"%iarr3       = OpTypeArray %i32 %three\n"
+		"%imat3       = OpTypeArray %iarr3 %three\n"
+		"%struct      = OpTypeStruct %imat3\n"
+		;
+}
+
+std::string getSpecConstantOpStructComposites ()
+{
+	return
+		"%iarr3_0     = OpConstantComposite %iarr3 %zero %zero %zero\n"
+		"%imat3_0     = OpConstantComposite %imat3 %iarr3_0 %iarr3_0 %iarr3_0\n"
+		"%struct_0    = OpConstantComposite %struct %imat3_0\n"
+		;
+}
+
+std::string getSpecConstantOpStructConstBlock ()
+{
+	return
+		"%iarr3_a     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_0        %iarr3_0     0\n"                        // Compose (sc_0, sc_1, sc_2)
+		"%iarr3_b     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_1        %iarr3_a     1\n"
+		"%iarr3_c     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_2        %iarr3_b     2\n"
+
+		"%iarr3_d     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_1        %iarr3_0     0\n"                        // Compose (sc_1, sc_2, sc_0)
+		"%iarr3_e     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_2        %iarr3_d     1\n"
+		"%iarr3_f     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_0        %iarr3_e     2\n"
+
+		"%iarr3_g     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_2        %iarr3_0     0\n"                        // Compose (sc_2, sc_0, sc_1)
+		"%iarr3_h     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_0        %iarr3_g     1\n"
+		"%iarr3_i     = OpSpecConstantOp %iarr3  CompositeInsert  %sc_1        %iarr3_h     2\n"
+
+		"%imat3_a     = OpSpecConstantOp %imat3  CompositeInsert  %iarr3_c     %imat3_0     0\n"						// Matrix with the 3 previous arrays.
+		"%imat3_b     = OpSpecConstantOp %imat3  CompositeInsert  %iarr3_f     %imat3_a     1\n"
+		"%imat3_c     = OpSpecConstantOp %imat3  CompositeInsert  %iarr3_i     %imat3_b     2\n"
+
+		"%struct_a    = OpSpecConstantOp %struct CompositeInsert  %imat3_c     %struct_0    0\n"						// Save it in the struct.
+
+		"%comp_0_0    = OpSpecConstantOp %i32    CompositeExtract %struct_a    0 0 0\n"									// Extract some component pairs to compare them.
+		"%comp_1_0    = OpSpecConstantOp %i32    CompositeExtract %struct_a    0 1 0\n"
+
+		"%comp_0_1    = OpSpecConstantOp %i32    CompositeExtract %struct_a    0 0 1\n"
+		"%comp_2_2    = OpSpecConstantOp %i32    CompositeExtract %struct_a    0 2 2\n"
+
+		"%comp_2_0    = OpSpecConstantOp %i32    CompositeExtract %struct_a    0 2 0\n"
+		"%comp_1_1    = OpSpecConstantOp %i32    CompositeExtract %struct_a    0 1 1\n"
+
+		"%cmpres_0    = OpSpecConstantOp %bool   IEqual %comp_0_0 %comp_1_0\n"											// Must be false.
+		"%cmpres_1    = OpSpecConstantOp %bool   IEqual %comp_0_1 %comp_2_2\n"											// Must be true.
+		"%cmpres_2    = OpSpecConstantOp %bool   IEqual %comp_2_0 %comp_1_1\n"											// Must be true.
+
+		"%mustbe_0    = OpSpecConstantOp %i32    Select %cmpres_0 %one %zero\n"											// Must select 0
+		"%mustbe_1    = OpSpecConstantOp %i32    Select %cmpres_1 %one %zero\n"											// Must select 1
+		"%mustbe_2    = OpSpecConstantOp %i32    Select %cmpres_2 %two %one\n"											// Must select 2
+		;
+}
+
+std::string getSpecConstantOpStructInstructions ()
+{
+	return
+		// Multiply final result with (1-mustbezero)*(mustbeone)*(mustbetwo-1). If everything goes right, the factor should be 1 and
+		// the final result should not be altered.
+		"%subf_a      = OpISub %i32 %one %mustbe_0\n"
+		"%subf_b      = OpIMul %i32 %subf_a %mustbe_1\n"
+		"%subf_c      = OpISub %i32 %mustbe_2 %one\n"
+		"%factor      = OpIMul %i32 %subf_b %subf_c\n"
+		"%sc_final    = OpIMul %i32 %factor %sc_factor\n"
+		;
+}
+
 tcu::TestCaseGroup* createSpecConstantGroup (tcu::TestContext& testCtx)
 {
 	de::MovePtr<tcu::TestCaseGroup>	group			(new tcu::TestCaseGroup(testCtx, "opspecconstantop", "Test the OpSpecConstantOp instruction"));
-	vector<SpecConstantTwoIntCase>	cases;
+	vector<SpecConstantTwoValCase>	cases;
 	de::Random						rnd				(deStringHash(group->getName()));
 	const int						numElements		= 100;
-	const deInt32					p1AsFloat16		= 0x3c00; // +1(fp16) == 0 01111 0000000000 == 0011 1100 0000 0000
 	vector<deInt32>					inputInts		(numElements, 0);
 	vector<deInt32>					outputInts1		(numElements, 0);
 	vector<deInt32>					outputInts2		(numElements, 0);
 	vector<deInt32>					outputInts3		(numElements, 0);
 	vector<deInt32>					outputInts4		(numElements, 0);
+	vector<deInt32>					outputInts5		(numElements, 0);
 	const StringTemplate			shaderTemplate	(
 		"${CAPABILITIES:opt}"
 		+ string(getComputeAsmShaderPreamble()) +
@@ -3511,6 +3700,7 @@
 		outputInts2[ndx] = inputInts[ndx];
 		outputInts3[ndx] = inputInts[ndx] - 11200;
 		outputInts4[ndx] = inputInts[ndx] + 1;
+		outputInts5[ndx] = inputInts[ndx] - 42;
 	}
 
 	const char addScToInput[]		= "OpIAdd %i32 %inval %sc_final";
@@ -3518,42 +3708,64 @@
 	const char selectTrueUsingSc[]	= "OpSelect %i32 %sc_final %inval %zero";
 	const char selectFalseUsingSc[]	= "OpSelect %i32 %sc_final %zero %inval";
 
-	cases.push_back(SpecConstantTwoIntCase("iadd",					" %i32 0",		" %i32 0",		"%i32",		"IAdd                 %sc_0 %sc_1",			62,		-20,	addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("isub",					" %i32 0",		" %i32 0",		"%i32",		"ISub                 %sc_0 %sc_1",			100,	58,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("imul",					" %i32 0",		" %i32 0",		"%i32",		"IMul                 %sc_0 %sc_1",			-2,		-21,	addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("sdiv",					" %i32 0",		" %i32 0",		"%i32",		"SDiv                 %sc_0 %sc_1",			-126,	-3,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("udiv",					" %i32 0",		" %i32 0",		"%i32",		"UDiv                 %sc_0 %sc_1",			126,	3,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("srem",					" %i32 0",		" %i32 0",		"%i32",		"SRem                 %sc_0 %sc_1",			7,		3,		addScToInput,		outputInts4));
-	cases.push_back(SpecConstantTwoIntCase("smod",					" %i32 0",		" %i32 0",		"%i32",		"SMod                 %sc_0 %sc_1",			7,		3,		addScToInput,		outputInts4));
-	cases.push_back(SpecConstantTwoIntCase("umod",					" %i32 0",		" %i32 0",		"%i32",		"UMod                 %sc_0 %sc_1",			342,	50,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("bitwiseand",			" %i32 0",		" %i32 0",		"%i32",		"BitwiseAnd           %sc_0 %sc_1",			42,		63,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("bitwiseor",				" %i32 0",		" %i32 0",		"%i32",		"BitwiseOr            %sc_0 %sc_1",			34,		8,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("bitwisexor",			" %i32 0",		" %i32 0",		"%i32",		"BitwiseXor           %sc_0 %sc_1",			18,		56,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("shiftrightlogical",		" %i32 0",		" %i32 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",			168,	2,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("shiftrightarithmetic",	" %i32 0",		" %i32 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",			168,	2,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("shiftleftlogical",		" %i32 0",		" %i32 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",			21,		1,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("slessthan",				" %i32 0",		" %i32 0",		"%bool",	"SLessThan            %sc_0 %sc_1",			-20,	-10,	selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("ulessthan",				" %i32 0",		" %i32 0",		"%bool",	"ULessThan            %sc_0 %sc_1",			10,		20,		selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("sgreaterthan",			" %i32 0",		" %i32 0",		"%bool",	"SGreaterThan         %sc_0 %sc_1",			-1000,	50,		selectFalseUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("ugreaterthan",			" %i32 0",		" %i32 0",		"%bool",	"UGreaterThan         %sc_0 %sc_1",			10,		5,		selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("slessthanequal",		" %i32 0",		" %i32 0",		"%bool",	"SLessThanEqual       %sc_0 %sc_1",			-10,	-10,	selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("ulessthanequal",		" %i32 0",		" %i32 0",		"%bool",	"ULessThanEqual       %sc_0 %sc_1",			50,		100,	selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("sgreaterthanequal",		" %i32 0",		" %i32 0",		"%bool",	"SGreaterThanEqual    %sc_0 %sc_1",			-1000,	50,		selectFalseUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("ugreaterthanequal",		" %i32 0",		" %i32 0",		"%bool",	"UGreaterThanEqual    %sc_0 %sc_1",			10,		10,		selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("iequal",				" %i32 0",		" %i32 0",		"%bool",	"IEqual               %sc_0 %sc_1",			42,		24,		selectFalseUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("inotequal",				" %i32 0",		" %i32 0",		"%bool",	"INotEqual            %sc_0 %sc_1",			42,		24,		selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("logicaland",			"True %bool",	"True %bool",	"%bool",	"LogicalAnd           %sc_0 %sc_1",			0,		1,		selectFalseUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("logicalor",				"False %bool",	"False %bool",	"%bool",	"LogicalOr            %sc_0 %sc_1",			1,		0,		selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("logicalequal",			"True %bool",	"True %bool",	"%bool",	"LogicalEqual         %sc_0 %sc_1",			0,		1,		selectFalseUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("logicalnotequal",		"False %bool",	"False %bool",	"%bool",	"LogicalNotEqual      %sc_0 %sc_1",			1,		0,		selectTrueUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("snegate",				" %i32 0",		" %i32 0",		"%i32",		"SNegate              %sc_0",				-42,	0,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("not",					" %i32 0",		" %i32 0",		"%i32",		"Not                  %sc_0",				-43,	0,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("logicalnot",			"False %bool",	"False %bool",	"%bool",	"LogicalNot           %sc_0",				1,		0,		selectFalseUsingSc,	outputInts2));
-	cases.push_back(SpecConstantTwoIntCase("select",				"False %bool",	" %i32 0",		"%i32",		"Select               %sc_0 %sc_1 %zero",	1,		42,		addScToInput,		outputInts1));
-	cases.push_back(SpecConstantTwoIntCase("sconvert",				" %i32 0",		" %i32 0",		"%i16",		"SConvert             %sc_0",				-11200,	0,		addSc32ToInput,		outputInts3));
-	// -969998336 stored as 32-bit two's complement is the binary representation of -11200 as IEEE-754 Float
-	cases.push_back(SpecConstantTwoIntCase("fconvert",				" %f32 0",		" %f32 0",		"%f64",		"FConvert             %sc_0",				-969998336, 0,	addSc32ToInput,		outputInts3));
-	cases.push_back(SpecConstantTwoIntCase("fconvert16",			" %f16 0",		" %f16 0",		"%f32",		"FConvert             %sc_0",				p1AsFloat16, 0,	addSc32ToInput,		outputInts4, sizeof(deFloat16)));
+	cases.push_back(SpecConstantTwoValCase("iadd",						" %i32 0",		" %i32 0",		"%i32",		"IAdd                 %sc_0 %sc_1",			62,						-20,				addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("isub",						" %i32 0",		" %i32 0",		"%i32",		"ISub                 %sc_0 %sc_1",			100,					58,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("imul",						" %i32 0",		" %i32 0",		"%i32",		"IMul                 %sc_0 %sc_1",			-2,						-21,				addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("sdiv",						" %i32 0",		" %i32 0",		"%i32",		"SDiv                 %sc_0 %sc_1",			-126,					-3,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("udiv",						" %i32 0",		" %i32 0",		"%i32",		"UDiv                 %sc_0 %sc_1",			126,					3,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("srem",						" %i32 0",		" %i32 0",		"%i32",		"SRem                 %sc_0 %sc_1",			7,						3,					addScToInput,		outputInts4));
+	cases.push_back(SpecConstantTwoValCase("smod",						" %i32 0",		" %i32 0",		"%i32",		"SMod                 %sc_0 %sc_1",			7,						3,					addScToInput,		outputInts4));
+	cases.push_back(SpecConstantTwoValCase("umod",						" %i32 0",		" %i32 0",		"%i32",		"UMod                 %sc_0 %sc_1",			342,					50,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("bitwiseand",				" %i32 0",		" %i32 0",		"%i32",		"BitwiseAnd           %sc_0 %sc_1",			42,						63,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("bitwiseor",					" %i32 0",		" %i32 0",		"%i32",		"BitwiseOr            %sc_0 %sc_1",			34,						8,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("bitwisexor",				" %i32 0",		" %i32 0",		"%i32",		"BitwiseXor           %sc_0 %sc_1",			18,						56,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical",			" %i32 0",		" %i32 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",			168,					2,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic",		" %i32 0",		" %i32 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",			-168,					2,					addScToInput,		outputInts5));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical",			" %i32 0",		" %i32 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",			21,						1,					addScToInput,		outputInts1));
+
+	// Shifts for other integer sizes.
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical_i64",		" %i64 0",		" %i64 0",		"%i64",		"ShiftRightLogical    %sc_0 %sc_1",			deInt64{168},			deInt64{2},			addSc32ToInput,		outputInts1, (FLAG_I64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic_i64",	" %i64 0",		" %i64 0",		"%i64",		"ShiftRightArithmetic %sc_0 %sc_1",			deInt64{-168},			deInt64{2},			addSc32ToInput,		outputInts5, (FLAG_I64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical_i64",		" %i64 0",		" %i64 0",		"%i64",		"ShiftLeftLogical     %sc_0 %sc_1",			deInt64{21},			deInt64{1},			addSc32ToInput,		outputInts1, (FLAG_I64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical_i16",		" %i16 0",		" %i16 0",		"%i16",		"ShiftRightLogical    %sc_0 %sc_1",			deInt16{168},			deInt16{2},			addSc32ToInput,		outputInts1, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic_i16",	" %i16 0",		" %i16 0",		"%i16",		"ShiftRightArithmetic %sc_0 %sc_1",			deInt16{-168},			deInt16{2},			addSc32ToInput,		outputInts5, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical_i16",		" %i16 0",		" %i16 0",		"%i16",		"ShiftLeftLogical     %sc_0 %sc_1",			deInt16{21},			deInt16{1},			addSc32ToInput,		outputInts1, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical_i8",		" %i8 0",		" %i8 0",		"%i8",		"ShiftRightLogical    %sc_0 %sc_1",			deInt8{84},				deInt8{1},			addSc32ToInput,		outputInts1, (FLAG_I8 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic_i8",	" %i8 0",		" %i8 0",		"%i8",		"ShiftRightArithmetic %sc_0 %sc_1",			deInt8{-84},			deInt8{1},			addSc32ToInput,		outputInts5, (FLAG_I8 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical_i8",		" %i8 0",		" %i8 0",		"%i8",		"ShiftLeftLogical     %sc_0 %sc_1",			deInt8{21},				deInt8{1},			addSc32ToInput,		outputInts1, (FLAG_I8 | FLAG_CONVERT)));
+
+	// Shifts for other integer sizes but only in the shift amount.
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical_s_i64",	" %i32 0",		" %i64 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",			168,					deInt64{2},			addScToInput,		outputInts1, (FLAG_I64)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic_s_i64"," %i32 0",		" %i64 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",			-168,					deInt64{2},			addScToInput,		outputInts5, (FLAG_I64)));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical_s_i64",	" %i32 0",		" %i64 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",			21,						deInt64{1},			addScToInput,		outputInts1, (FLAG_I64)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical_s_i16",	" %i32 0",		" %i16 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",			168,					deInt16{2},			addScToInput,		outputInts1, (FLAG_I16)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic_s_i16"," %i32 0",		" %i16 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",			-168,					deInt16{2},			addScToInput,		outputInts5, (FLAG_I16)));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical_s_i16",	" %i32 0",		" %i16 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",			21,						deInt16{1},			addScToInput,		outputInts1, (FLAG_I16)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightlogical_s_i8",	" %i32 0",		" %i8 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",			84,						deInt8{1},			addScToInput,		outputInts1, (FLAG_I8)));
+	cases.push_back(SpecConstantTwoValCase("shiftrightarithmetic_s_i8",	" %i32 0",		" %i8 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",			-84,					deInt8{1},			addScToInput,		outputInts5, (FLAG_I8)));
+	cases.push_back(SpecConstantTwoValCase("shiftleftlogical_s_i8",		" %i32 0",		" %i8 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",			21,						deInt8{1},			addScToInput,		outputInts1, (FLAG_I8)));
+
+	cases.push_back(SpecConstantTwoValCase("slessthan",					" %i32 0",		" %i32 0",		"%bool",	"SLessThan            %sc_0 %sc_1",			-20,					-10,				selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("ulessthan",					" %i32 0",		" %i32 0",		"%bool",	"ULessThan            %sc_0 %sc_1",			10,						20,					selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("sgreaterthan",				" %i32 0",		" %i32 0",		"%bool",	"SGreaterThan         %sc_0 %sc_1",			-1000,					50,					selectFalseUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("ugreaterthan",				" %i32 0",		" %i32 0",		"%bool",	"UGreaterThan         %sc_0 %sc_1",			10,						5,					selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("slessthanequal",			" %i32 0",		" %i32 0",		"%bool",	"SLessThanEqual       %sc_0 %sc_1",			-10,					-10,				selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("ulessthanequal",			" %i32 0",		" %i32 0",		"%bool",	"ULessThanEqual       %sc_0 %sc_1",			50,						100,				selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("sgreaterthanequal",			" %i32 0",		" %i32 0",		"%bool",	"SGreaterThanEqual    %sc_0 %sc_1",			-1000,					50,					selectFalseUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("ugreaterthanequal",			" %i32 0",		" %i32 0",		"%bool",	"UGreaterThanEqual    %sc_0 %sc_1",			10,						10,					selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("iequal",					" %i32 0",		" %i32 0",		"%bool",	"IEqual               %sc_0 %sc_1",			42,						24,					selectFalseUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("inotequal",					" %i32 0",		" %i32 0",		"%bool",	"INotEqual            %sc_0 %sc_1",			42,						24,					selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("logicaland",				"True %bool",	"True %bool",	"%bool",	"LogicalAnd           %sc_0 %sc_1",			0,						1,					selectFalseUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("logicalor",					"False %bool",	"False %bool",	"%bool",	"LogicalOr            %sc_0 %sc_1",			1,						0,					selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("logicalequal",				"True %bool",	"True %bool",	"%bool",	"LogicalEqual         %sc_0 %sc_1",			0,						1,					selectFalseUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("logicalnotequal",			"False %bool",	"False %bool",	"%bool",	"LogicalNotEqual      %sc_0 %sc_1",			1,						0,					selectTrueUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("snegate",					" %i32 0",		" %i32 0",		"%i32",		"SNegate              %sc_0",				-42,					0,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("not",						" %i32 0",		" %i32 0",		"%i32",		"Not                  %sc_0",				-43,					0,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("logicalnot",				"False %bool",	"False %bool",	"%bool",	"LogicalNot           %sc_0",				1,						0,					selectFalseUsingSc,	outputInts2));
+	cases.push_back(SpecConstantTwoValCase("select",					"False %bool",	" %i32 0",		"%i32",		"Select               %sc_0 %sc_1 %zero",	1,						42,					addScToInput,		outputInts1));
+	cases.push_back(SpecConstantTwoValCase("sconvert",					" %i32 0",		" %i32 0",		"%i16",		"SConvert             %sc_0",				-11200,					0,					addSc32ToInput,		outputInts3, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("fconvert",					" %f32 0",		" %f32 0",		"%f64",		"FConvert             %sc_0",				tcu::Float32{-11200.0},	tcu::Float32{0.0},	addSc32ToInput,		outputInts3, (FLAG_F64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValCase("fconvert16",				" %f16 0",		" %f16 0",		"%f32",		"FConvert             %sc_0",				tcu::Float16{1.0},		tcu::Float16{0.0},	addSc32ToInput,		outputInts4, (FLAG_F16 | FLAG_CONVERT)));
 
 	for (size_t caseNdx = 0; caseNdx < cases.size(); ++caseNdx)
 	{
@@ -3566,42 +3778,68 @@
 		specializations["SC_OP"]			= cases[caseNdx].scOperation;
 		specializations["GEN_RESULT"]		= cases[caseNdx].resultOperation;
 
-		// Special SPIR-V code for SConvert-case
-		if (strcmp(cases[caseNdx].caseName, "sconvert") == 0)
+		// Special SPIR-V code when using 16-bit integers.
+		if (cases[caseNdx].caseFlags & FLAG_I16)
 		{
 			spec.requestedVulkanFeatures.coreFeatures.shaderInt16	= VK_TRUE;
-			specializations["CAPABILITIES"]							= "OpCapability Int16\n";							// Adds 16-bit integer capability
-			specializations["OPTYPE_DEFINITIONS"]					= "%i16 = OpTypeInt 16 1\n";						// Adds 16-bit integer type
-			specializations["TYPE_CONVERT"]							= "%sc_final32 = OpSConvert %i32 %sc_final\n";		// Converts 16-bit integer to 32-bit integer
+			specializations["CAPABILITIES"]							+= "OpCapability Int16\n";							// Adds 16-bit integer capability
+			specializations["OPTYPE_DEFINITIONS"]					+= "%i16 = OpTypeInt 16 1\n";						// Adds 16-bit integer type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]						+= "%sc_final32 = OpSConvert %i32 %sc_final\n";		// Converts 16-bit integer to 32-bit integer
 		}
 
-		// Special SPIR-V code for FConvert-case
-		if (strcmp(cases[caseNdx].caseName, "fconvert") == 0)
+		// Special SPIR-V code when using 64-bit integers.
+		if (cases[caseNdx].caseFlags & FLAG_I64)
+		{
+			spec.requestedVulkanFeatures.coreFeatures.shaderInt64	= VK_TRUE;
+			specializations["CAPABILITIES"]							+= "OpCapability Int64\n";							// Adds 64-bit integer capability
+			specializations["OPTYPE_DEFINITIONS"]					+= "%i64 = OpTypeInt 64 1\n";						// Adds 64-bit integer type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]						+= "%sc_final32 = OpSConvert %i32 %sc_final\n";		// Converts 64-bit integer to 32-bit integer
+		}
+
+		// Special SPIR-V code when using 64-bit floats.
+		if (cases[caseNdx].caseFlags & FLAG_F64)
 		{
 			spec.requestedVulkanFeatures.coreFeatures.shaderFloat64	= VK_TRUE;
-			specializations["CAPABILITIES"]							= "OpCapability Float64\n";							// Adds 64-bit float capability
-			specializations["OPTYPE_DEFINITIONS"]					= "%f64 = OpTypeFloat 64\n";						// Adds 64-bit float type
-			specializations["TYPE_CONVERT"]							= "%sc_final32 = OpConvertFToS %i32 %sc_final\n";	// Converts 64-bit float to 32-bit integer
+			specializations["CAPABILITIES"]							+= "OpCapability Float64\n";						// Adds 64-bit float capability
+			specializations["OPTYPE_DEFINITIONS"]					+= "%f64 = OpTypeFloat 64\n";						// Adds 64-bit float type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]						+= "%sc_final32 = OpConvertFToS %i32 %sc_final\n";	// Converts 64-bit float to 32-bit integer
 		}
 
-		// Special SPIR-V code for FConvert-case for 16-bit floats
-		if (strcmp(cases[caseNdx].caseName, "fconvert16") == 0)
-		{
+		// Extension needed for float16 and int8.
+		if (cases[caseNdx].caseFlags & (FLAG_F16 | FLAG_I8))
 			spec.extensions.push_back("VK_KHR_shader_float16_int8");
-			spec.requestedVulkanFeatures.extFloat16Int8 = EXTFLOAT16INT8FEATURES_FLOAT16;
-			specializations["CAPABILITIES"]			= "OpCapability Float16\n";							// Adds 16-bit float capability
-			specializations["OPTYPE_DEFINITIONS"]	= "%f16 = OpTypeFloat 16\n";						// Adds 16-bit float type
-			specializations["TYPE_CONVERT"]			= "%sc_final32 = OpConvertFToS %i32 %sc_final\n";	// Converts 16-bit float to 32-bit integer
+
+		// Special SPIR-V code when using 16-bit floats.
+		if (cases[caseNdx].caseFlags & FLAG_F16)
+		{
+			spec.requestedVulkanFeatures.extFloat16Int8	|= EXTFLOAT16INT8FEATURES_FLOAT16;
+			specializations["CAPABILITIES"]				+= "OpCapability Float16\n";						// Adds 16-bit float capability
+			specializations["OPTYPE_DEFINITIONS"]		+= "%f16 = OpTypeFloat 16\n";						// Adds 16-bit float type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]			+= "%sc_final32 = OpConvertFToS %i32 %sc_final\n";	// Converts 16-bit float to 32-bit integer
+		}
+
+		// Special SPIR-V code when using 8-bit integers.
+		if (cases[caseNdx].caseFlags & FLAG_I8)
+		{
+			spec.requestedVulkanFeatures.extFloat16Int8	|= EXTFLOAT16INT8FEATURES_INT8;
+			specializations["CAPABILITIES"]				+= "OpCapability Int8\n";						// Adds 8-bit integer capability
+			specializations["OPTYPE_DEFINITIONS"]		+= "%i8 = OpTypeInt 8 1\n";						// Adds 8-bit integer type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]			+= "%sc_final32 = OpSConvert %i32 %sc_final\n";	// Converts 8-bit integer to 32-bit integer
 		}
 
 		spec.assembly = shaderTemplate.specialize(specializations);
 		spec.inputs.push_back(BufferSp(new Int32Buffer(inputInts)));
 		spec.outputs.push_back(BufferSp(new Int32Buffer(cases[caseNdx].expectedOutput)));
 		spec.numWorkGroups = IVec3(numElements, 1, 1);
-		spec.specConstants.append(&cases[caseNdx].scActualValue0, cases[caseNdx].scActualValueLength);
-		spec.specConstants.append(&cases[caseNdx].scActualValue1, cases[caseNdx].scActualValueLength);
+		cases[caseNdx].scActualValue0.appendTo(spec.specConstants);
+		cases[caseNdx].scActualValue1.appendTo(spec.specConstants);
 
-		group->addChild(new SpvAsmComputeShaderCase(testCtx, cases[caseNdx].caseName, cases[caseNdx].caseName, spec));
+		group->addChild(new SpvAsmComputeShaderCase(testCtx, cases[caseNdx].caseName.c_str(), cases[caseNdx].caseName.c_str(), spec));
 	}
 
 	ComputeShaderSpec				spec;
@@ -3621,19 +3859,26 @@
 		+ string(getComputeAsmInputOutputBufferTraits()) + string(getComputeAsmCommonTypes()) +
 
 		"%ivec3       = OpTypeVector %i32 3\n"
+
+		+ getSpecConstantOpStructConstantsAndTypes() +
+
 		"%buf         = OpTypeStruct %i32arr\n"
 		"%bufptr      = OpTypePointer Uniform %buf\n"
 		"%indata      = OpVariable %bufptr Uniform\n"
 		"%outdata     = OpVariable %bufptr Uniform\n"
 
 		"%id          = OpVariable %uvec3ptr Input\n"
-		"%zero        = OpConstant %i32 0\n"
 		"%ivec3_0     = OpConstantComposite %ivec3 %zero %zero %zero\n"
 		"%vec3_undef  = OpUndef %ivec3\n"
 
+		+ getSpecConstantOpStructComposites () +
+
 		"%sc_0        = OpSpecConstant %i32 0\n"
 		"%sc_1        = OpSpecConstant %i32 0\n"
 		"%sc_2        = OpSpecConstant %i32 0\n"
+
+		+ getSpecConstantOpStructConstBlock () +
+
 		"%sc_vec3_0   = OpSpecConstantOp %ivec3 CompositeInsert  %sc_0        %ivec3_0     0\n"							// (sc_0, 0, 0)
 		"%sc_vec3_1   = OpSpecConstantOp %ivec3 CompositeInsert  %sc_1        %ivec3_0     1\n"							// (0, sc_1, 0)
 		"%sc_vec3_2   = OpSpecConstantOp %ivec3 CompositeInsert  %sc_2        %ivec3_0     2\n"							// (0, 0, sc_2)
@@ -3646,10 +3891,13 @@
 		"%sc_ext_1    = OpSpecConstantOp %i32   CompositeExtract %sc_vec3_012              1\n"							// sc_0
 		"%sc_ext_2    = OpSpecConstantOp %i32   CompositeExtract %sc_vec3_012              2\n"							// sc_1
 		"%sc_sub      = OpSpecConstantOp %i32   ISub             %sc_ext_0    %sc_ext_1\n"								// (sc_2 - sc_0)
-		"%sc_final    = OpSpecConstantOp %i32   IMul             %sc_sub      %sc_ext_2\n"								// (sc_2 - sc_0) * sc_1
+		"%sc_factor   = OpSpecConstantOp %i32   IMul             %sc_sub      %sc_ext_2\n"								// (sc_2 - sc_0) * sc_1
 
 		"%main      = OpFunction %void None %voidf\n"
 		"%label     = OpLabel\n"
+
+		+ getSpecConstantOpStructInstructions() +
+
 		"%idval     = OpLoad %uvec3 %id\n"
 		"%x         = OpCompositeExtract %u32 %idval 0\n"
 		"%inloc     = OpAccessChain %i32ptr %indata %zero %x\n"
@@ -6691,7 +6939,32 @@
 		group->addChild(new SpvAsmComputeShaderCase(testCtx, cases[caseNdx].name, cases[caseNdx].name, spec));
 	}
 
-		return group.release();
+	// OpUndef with constants.
+	{
+		static const char data_dir[] = "spirv_assembly/instruction/compute/undef";
+
+		static const struct
+		{
+			const std::string name;
+			const std::string desc;
+		} amberCases[] =
+		{
+			{ "undefined_constant_composite",		"OpUndef value in OpConstantComposite"		},
+			{ "undefined_spec_constant_composite",	"OpUndef value in OpSpecConstantComposite"	},
+		};
+
+		for (int i = 0; i < DE_LENGTH_OF_ARRAY(amberCases); ++i)
+		{
+			cts_amber::AmberTestCase *testCase = cts_amber::createAmberTestCase(testCtx,
+																				amberCases[i].name.c_str(),
+																				amberCases[i].desc.c_str(),
+																				data_dir,
+																				amberCases[i].name + ".amber");
+			group->addChild(testCase);
+		}
+	}
+
+	return group.release();
 }
 
 // Checks that a compute shader can generate a constant composite value of various types, without exercising a computation on it.
@@ -7743,38 +8016,38 @@
 	return group.release();
 }
 
-struct SpecConstantTwoIntGraphicsCase
+struct SpecConstantTwoValGraphicsCase
 {
-	const char*		caseName;
-	const char*		scDefinition0;
-	const char*		scDefinition1;
-	const char*		scResultType;
-	const char*		scOperation;
-	deInt32			scActualValue0;
-	deInt32			scActualValue1;
-	const char*		resultOperation;
-	RGBA			expectedColors[4];
-	deInt32			scActualValueLength;
+	const std::string	caseName;
+	const std::string	scDefinition0;
+	const std::string	scDefinition1;
+	const std::string	scResultType;
+	const std::string	scOperation;
+	SpecConstantValue	scActualValue0;
+	SpecConstantValue	scActualValue1;
+	const std::string	resultOperation;
+	RGBA				expectedColors[4];
+	CaseFlags			caseFlags;
 
-					SpecConstantTwoIntGraphicsCase (const char*		name,
-													const char*		definition0,
-													const char*		definition1,
-													const char*		resultType,
-													const char*		operation,
-													const deInt32	value0,
-													const deInt32	value1,
-													const char*		resultOp,
-													const RGBA		(&output)[4],
-													const deInt32	valueLength = sizeof(deInt32))
-						: caseName				(name)
-						, scDefinition0			(definition0)
-						, scDefinition1			(definition1)
-						, scResultType			(resultType)
-						, scOperation			(operation)
-						, scActualValue0		(value0)
-						, scActualValue1		(value1)
-						, resultOperation		(resultOp)
-						, scActualValueLength	(valueLength)
+						SpecConstantTwoValGraphicsCase (const std::string&			name,
+														const std::string&			definition0,
+														const std::string&			definition1,
+														const std::string&			resultType,
+														const std::string&			operation,
+														const SpecConstantValue&	value0,
+														const SpecConstantValue&	value1,
+														const std::string&			resultOp,
+														const RGBA					(&output)[4],
+														CaseFlags					flags = FLAG_NONE)
+							: caseName				(name)
+							, scDefinition0			(definition0)
+							, scDefinition1			(definition1)
+							, scResultType			(resultType)
+							, scOperation			(operation)
+							, scActualValue0		(value0)
+							, scActualValue1		(value1)
+							, resultOperation		(resultOp)
+							, caseFlags				(flags)
 	{
 		expectedColors[0] = output[0];
 		expectedColors[1] = output[1];
@@ -7785,14 +8058,12 @@
 
 tcu::TestCaseGroup* createSpecConstantTests (tcu::TestContext& testCtx)
 {
-	de::MovePtr<tcu::TestCaseGroup> group				(new tcu::TestCaseGroup(testCtx, "opspecconstantop", "Test the OpSpecConstantOp instruction"));
-	vector<SpecConstantTwoIntGraphicsCase>	cases;
-	RGBA							inputColors[4];
-	RGBA							outputColors0[4];
-	RGBA							outputColors1[4];
-	RGBA							outputColors2[4];
-
-	const deInt32					m1AsFloat16			= 0xbc00; // -1(fp16) == 1 01111 0000000000 == 1011 1100 0000 0000
+	de::MovePtr<tcu::TestCaseGroup>			group (new tcu::TestCaseGroup(testCtx, "opspecconstantop", "Test the OpSpecConstantOp instruction"));
+	vector<SpecConstantTwoValGraphicsCase>	cases;
+	RGBA									inputColors[4];
+	RGBA									outputColors0[4];
+	RGBA									outputColors1[4];
+	RGBA									outputColors2[4];
 
 	const char	decorations1[]			=
 		"OpDecorate %sc_0  SpecId 0\n"
@@ -7849,42 +8120,64 @@
 	const char selectTrueUsingSc[]	= "OpSelect %i32 %sc_op %c_i32_1 %c_i32_0";
 	const char selectFalseUsingSc[]	= "OpSelect %i32 %sc_op %c_i32_0 %c_i32_1";
 
-	cases.push_back(SpecConstantTwoIntGraphicsCase("iadd",					" %i32 0",		" %i32 0",		"%i32",		"IAdd                 %sc_0 %sc_1",				19,		-20,	addZeroToSc,		outputColors0));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("isub",					" %i32 0",		" %i32 0",		"%i32",		"ISub                 %sc_0 %sc_1",				19,		20,		addZeroToSc,		outputColors0));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("imul",					" %i32 0",		" %i32 0",		"%i32",		"IMul                 %sc_0 %sc_1",				-1,		-1,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("sdiv",					" %i32 0",		" %i32 0",		"%i32",		"SDiv                 %sc_0 %sc_1",				-126,	126,	addZeroToSc,		outputColors0));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("udiv",					" %i32 0",		" %i32 0",		"%i32",		"UDiv                 %sc_0 %sc_1",				126,	126,	addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("srem",					" %i32 0",		" %i32 0",		"%i32",		"SRem                 %sc_0 %sc_1",				3,		2,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("smod",					" %i32 0",		" %i32 0",		"%i32",		"SMod                 %sc_0 %sc_1",				3,		2,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("umod",					" %i32 0",		" %i32 0",		"%i32",		"UMod                 %sc_0 %sc_1",				1001,	500,	addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("bitwiseand",			" %i32 0",		" %i32 0",		"%i32",		"BitwiseAnd           %sc_0 %sc_1",				0x33,	0x0d,	addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("bitwiseor",				" %i32 0",		" %i32 0",		"%i32",		"BitwiseOr            %sc_0 %sc_1",				0,		1,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("bitwisexor",			" %i32 0",		" %i32 0",		"%i32",		"BitwiseXor           %sc_0 %sc_1",				0x2e,	0x2f,	addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("shiftrightlogical",		" %i32 0",		" %i32 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",				2,		1,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("shiftrightarithmetic",	" %i32 0",		" %i32 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",				-4,		2,		addZeroToSc,		outputColors0));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("shiftleftlogical",		" %i32 0",		" %i32 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",				1,		0,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("slessthan",				" %i32 0",		" %i32 0",		"%bool",	"SLessThan            %sc_0 %sc_1",				-20,	-10,	selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("ulessthan",				" %i32 0",		" %i32 0",		"%bool",	"ULessThan            %sc_0 %sc_1",				10,		20,		selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("sgreaterthan",			" %i32 0",		" %i32 0",		"%bool",	"SGreaterThan         %sc_0 %sc_1",				-1000,	50,		selectFalseUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("ugreaterthan",			" %i32 0",		" %i32 0",		"%bool",	"UGreaterThan         %sc_0 %sc_1",				10,		5,		selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("slessthanequal",		" %i32 0",		" %i32 0",		"%bool",	"SLessThanEqual       %sc_0 %sc_1",				-10,	-10,	selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("ulessthanequal",		" %i32 0",		" %i32 0",		"%bool",	"ULessThanEqual       %sc_0 %sc_1",				50,		100,	selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("sgreaterthanequal",		" %i32 0",		" %i32 0",		"%bool",	"SGreaterThanEqual    %sc_0 %sc_1",				-1000,	50,		selectFalseUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("ugreaterthanequal",		" %i32 0",		" %i32 0",		"%bool",	"UGreaterThanEqual    %sc_0 %sc_1",				10,		10,		selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("iequal",				" %i32 0",		" %i32 0",		"%bool",	"IEqual               %sc_0 %sc_1",				42,		24,		selectFalseUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("inotequal",				" %i32 0",		" %i32 0",		"%bool",	"INotEqual            %sc_0 %sc_1",				42,		24,		selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("logicaland",			"True %bool",	"True %bool",	"%bool",	"LogicalAnd           %sc_0 %sc_1",				0,		1,		selectFalseUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("logicalor",				"False %bool",	"False %bool",	"%bool",	"LogicalOr            %sc_0 %sc_1",				1,		0,		selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("logicalequal",			"True %bool",	"True %bool",	"%bool",	"LogicalEqual         %sc_0 %sc_1",				0,		1,		selectFalseUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("logicalnotequal",		"False %bool",	"False %bool",	"%bool",	"LogicalNotEqual      %sc_0 %sc_1",				1,		0,		selectTrueUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("snegate",				" %i32 0",		" %i32 0",		"%i32",		"SNegate              %sc_0",					-1,		0,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("not",					" %i32 0",		" %i32 0",		"%i32",		"Not                  %sc_0",					-2,		0,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("logicalnot",			"False %bool",	"False %bool",	"%bool",	"LogicalNot           %sc_0",					1,		0,		selectFalseUsingSc,	outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("select",				"False %bool",	" %i32 0",		"%i32",		"Select               %sc_0 %sc_1 %c_i32_0",	1,		1,		addZeroToSc,		outputColors2));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("sconvert",				" %i32 0",		" %i32 0",		"%i16",		"SConvert             %sc_0",					-1,		0,		addZeroToSc32,		outputColors0));
-	// -1082130432 stored as 32-bit two's complement is the binary representation of -1 as IEEE-754 Float
-	cases.push_back(SpecConstantTwoIntGraphicsCase("fconvert",				" %f32 0",		" %f32 0",		"%f64",		"FConvert             %sc_0",					-1082130432, 0,	addZeroToSc32,		outputColors0));
-	cases.push_back(SpecConstantTwoIntGraphicsCase("fconvert16",			" %f16 0",		" %f16 0",		"%f32",		"FConvert             %sc_0",					m1AsFloat16, 0,	addZeroToSc32,		outputColors0, sizeof(deFloat16)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("iadd",							" %i32 0",		" %i32 0",		"%i32",		"IAdd                 %sc_0 %sc_1",				19,					-20,				addZeroToSc,		outputColors0));
+	cases.push_back(SpecConstantTwoValGraphicsCase("isub",							" %i32 0",		" %i32 0",		"%i32",		"ISub                 %sc_0 %sc_1",				19,					20,					addZeroToSc,		outputColors0));
+	cases.push_back(SpecConstantTwoValGraphicsCase("imul",							" %i32 0",		" %i32 0",		"%i32",		"IMul                 %sc_0 %sc_1",				-1,					-1,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("sdiv",							" %i32 0",		" %i32 0",		"%i32",		"SDiv                 %sc_0 %sc_1",				-126,				126,				addZeroToSc,		outputColors0));
+	cases.push_back(SpecConstantTwoValGraphicsCase("udiv",							" %i32 0",		" %i32 0",		"%i32",		"UDiv                 %sc_0 %sc_1",				126,				126,				addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("srem",							" %i32 0",		" %i32 0",		"%i32",		"SRem                 %sc_0 %sc_1",				3,					2,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("smod",							" %i32 0",		" %i32 0",		"%i32",		"SMod                 %sc_0 %sc_1",				3,					2,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("umod",							" %i32 0",		" %i32 0",		"%i32",		"UMod                 %sc_0 %sc_1",				1001,				500,				addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("bitwiseand",					" %i32 0",		" %i32 0",		"%i32",		"BitwiseAnd           %sc_0 %sc_1",				0x33,				0x0d,				addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("bitwiseor",						" %i32 0",		" %i32 0",		"%i32",		"BitwiseOr            %sc_0 %sc_1",				0,					1,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("bitwisexor",					" %i32 0",		" %i32 0",		"%i32",		"BitwiseXor           %sc_0 %sc_1",				0x2e,				0x2f,				addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical",				" %i32 0",		" %i32 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",				2,					1,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic",			" %i32 0",		" %i32 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",				-4,					2,					addZeroToSc,		outputColors0));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical",				" %i32 0",		" %i32 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",				1,					0,					addZeroToSc,		outputColors2));
+
+	// Shifts for other integer sizes.
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical_i64",			" %i64 0",		" %i64 0",		"%i64",		"ShiftRightLogical    %sc_0 %sc_1",				deInt64{2},			deInt64{1},			addZeroToSc32,		outputColors2, (FLAG_I64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic_i64",		" %i64 0",		" %i64 0",		"%i64",		"ShiftRightArithmetic %sc_0 %sc_1",				deInt64{-4},		deInt64{2},			addZeroToSc32,		outputColors0, (FLAG_I64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical_i64",			" %i64 0",		" %i64 0",		"%i64",		"ShiftLeftLogical     %sc_0 %sc_1",				deInt64{1},			deInt64{0},			addZeroToSc32,		outputColors2, (FLAG_I64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical_i16",			" %i16 0",		" %i16 0",		"%i16",		"ShiftRightLogical    %sc_0 %sc_1",				deInt16{2},			deInt16{1},			addZeroToSc32,		outputColors2, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic_i16",		" %i16 0",		" %i16 0",		"%i16",		"ShiftRightArithmetic %sc_0 %sc_1",				deInt16{-4},		deInt16{2},			addZeroToSc32,		outputColors0, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical_i16",			" %i16 0",		" %i16 0",		"%i16",		"ShiftLeftLogical     %sc_0 %sc_1",				deInt16{1},			deInt16{0},			addZeroToSc32,		outputColors2, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical_i8",			" %i8 0",		" %i8 0",		"%i8",		"ShiftRightLogical    %sc_0 %sc_1",				deInt8{2},			deInt8{1},			addZeroToSc32,		outputColors2, (FLAG_I8 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic_i8",		" %i8 0",		" %i8 0",		"%i8",		"ShiftRightArithmetic %sc_0 %sc_1",				deInt8{-4},			deInt8{2},			addZeroToSc32,		outputColors0, (FLAG_I8 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical_i8",			" %i8 0",		" %i8 0",		"%i8",		"ShiftLeftLogical     %sc_0 %sc_1",				deInt8{1},			deInt8{0},			addZeroToSc32,		outputColors2, (FLAG_I8 | FLAG_CONVERT)));
+
+	// Shifts for other integer sizes but only in the shift amount.
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical_s_i64",		" %i32 0",		" %i64 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",				2,					deInt64{1},			addZeroToSc,		outputColors2, (FLAG_I64)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic_s_i64",	" %i32 0",		" %i64 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",				-4,					deInt64{2},			addZeroToSc,		outputColors0, (FLAG_I64)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical_s_i64",		" %i32 0",		" %i64 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",				1,					deInt64{0},			addZeroToSc,		outputColors2, (FLAG_I64)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical_s_i16",		" %i32 0",		" %i16 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",				2,					deInt16{1},			addZeroToSc,		outputColors2, (FLAG_I16)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic_s_i16",	" %i32 0",		" %i16 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",				-4,					deInt16{2},			addZeroToSc,		outputColors0, (FLAG_I16)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical_s_i16",		" %i32 0",		" %i16 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",				1,					deInt16{0},			addZeroToSc,		outputColors2, (FLAG_I16)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightlogical_s_i8",		" %i32 0",		" %i8 0",		"%i32",		"ShiftRightLogical    %sc_0 %sc_1",				2,					deInt8{1},			addZeroToSc,		outputColors2, (FLAG_I8)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftrightarithmetic_s_i8",		" %i32 0",		" %i8 0",		"%i32",		"ShiftRightArithmetic %sc_0 %sc_1",				-4,					deInt8{2},			addZeroToSc,		outputColors0, (FLAG_I8)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("shiftleftlogical_s_i8",			" %i32 0",		" %i8 0",		"%i32",		"ShiftLeftLogical     %sc_0 %sc_1",				1,					deInt8{0},			addZeroToSc,		outputColors2, (FLAG_I8)));
+
+	cases.push_back(SpecConstantTwoValGraphicsCase("slessthan",						" %i32 0",		" %i32 0",		"%bool",	"SLessThan            %sc_0 %sc_1",				-20,				-10,				selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("ulessthan",						" %i32 0",		" %i32 0",		"%bool",	"ULessThan            %sc_0 %sc_1",				10,					20,					selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("sgreaterthan",					" %i32 0",		" %i32 0",		"%bool",	"SGreaterThan         %sc_0 %sc_1",				-1000,				50,					selectFalseUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("ugreaterthan",					" %i32 0",		" %i32 0",		"%bool",	"UGreaterThan         %sc_0 %sc_1",				10,					5,					selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("slessthanequal",				" %i32 0",		" %i32 0",		"%bool",	"SLessThanEqual       %sc_0 %sc_1",				-10,				-10,				selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("ulessthanequal",				" %i32 0",		" %i32 0",		"%bool",	"ULessThanEqual       %sc_0 %sc_1",				50,					100,				selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("sgreaterthanequal",				" %i32 0",		" %i32 0",		"%bool",	"SGreaterThanEqual    %sc_0 %sc_1",				-1000,				50,					selectFalseUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("ugreaterthanequal",				" %i32 0",		" %i32 0",		"%bool",	"UGreaterThanEqual    %sc_0 %sc_1",				10,					10,					selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("iequal",						" %i32 0",		" %i32 0",		"%bool",	"IEqual               %sc_0 %sc_1",				42,					24,					selectFalseUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("inotequal",						" %i32 0",		" %i32 0",		"%bool",	"INotEqual            %sc_0 %sc_1",				42,					24,					selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("logicaland",					"True %bool",	"True %bool",	"%bool",	"LogicalAnd           %sc_0 %sc_1",				0,					1,					selectFalseUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("logicalor",						"False %bool",	"False %bool",	"%bool",	"LogicalOr            %sc_0 %sc_1",				1,					0,					selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("logicalequal",					"True %bool",	"True %bool",	"%bool",	"LogicalEqual         %sc_0 %sc_1",				0,					1,					selectFalseUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("logicalnotequal",				"False %bool",	"False %bool",	"%bool",	"LogicalNotEqual      %sc_0 %sc_1",				1,					0,					selectTrueUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("snegate",						" %i32 0",		" %i32 0",		"%i32",		"SNegate              %sc_0",					-1,					0,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("not",							" %i32 0",		" %i32 0",		"%i32",		"Not                  %sc_0",					-2,					0,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("logicalnot",					"False %bool",	"False %bool",	"%bool",	"LogicalNot           %sc_0",					1,					0,					selectFalseUsingSc,	outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("select",						"False %bool",	" %i32 0",		"%i32",		"Select               %sc_0 %sc_1 %c_i32_0",	1,					1,					addZeroToSc,		outputColors2));
+	cases.push_back(SpecConstantTwoValGraphicsCase("sconvert",						" %i32 0",		" %i32 0",		"%i16",		"SConvert             %sc_0",					-1,					0,					addZeroToSc32,		outputColors0, (FLAG_I16 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("fconvert",						" %f32 0",		" %f32 0",		"%f64",		"FConvert             %sc_0",					tcu::Float32(-1.0),	tcu::Float32(0.0),	addZeroToSc32,		outputColors0, (FLAG_F64 | FLAG_CONVERT)));
+	cases.push_back(SpecConstantTwoValGraphicsCase("fconvert16",					" %f16 0",		" %f16 0",		"%f32",		"FConvert             %sc_0",					tcu::Float16(-1.0),	tcu::Float16(0.0),	addZeroToSc32,		outputColors0, (FLAG_F16 | FLAG_CONVERT)));
 	// \todo[2015-12-1 antiagainst] OpQuantizeToF16
 
 	for (size_t caseNdx = 0; caseNdx < cases.size(); ++caseNdx)
@@ -7898,32 +8191,58 @@
 		vector<string>				extensions;
 		VulkanFeatures				requiredFeatures;
 
-		// Special SPIR-V code for SConvert-case
-		if (strcmp(cases[caseNdx].caseName, "sconvert") == 0)
+		// Special SPIR-V code when using 16-bit integers.
+		if (cases[caseNdx].caseFlags & FLAG_I16)
 		{
-			requiredFeatures.coreFeatures.shaderInt16 = VK_TRUE;
-			fragments["capability"]					= "OpCapability Int16\n";					// Adds 16-bit integer capability
-			specializations["OPTYPE_DEFINITIONS"]	= "%i16 = OpTypeInt 16 1\n";				// Adds 16-bit integer type
-			specializations["TYPE_CONVERT"]			= "%sc_op32 = OpSConvert %i32 %sc_op\n";	// Converts 16-bit integer to 32-bit integer
+			requiredFeatures.coreFeatures.shaderInt16		= VK_TRUE;
+			fragments["capability"]							+= "OpCapability Int16\n";							// Adds 16-bit integer capability
+			specializations["OPTYPE_DEFINITIONS"]			+= "%i16 = OpTypeInt 16 1\n";						// Adds 16-bit integer type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]				+= "%sc_op32 = OpSConvert %i32 %sc_op\n";			// Converts 16-bit integer to 32-bit integer
 		}
 
-		// Special SPIR-V code for FConvert-case
-		if (strcmp(cases[caseNdx].caseName, "fconvert") == 0)
+		// Special SPIR-V code when using 64-bit integers.
+		if (cases[caseNdx].caseFlags & FLAG_I64)
 		{
-			requiredFeatures.coreFeatures.shaderFloat64 = VK_TRUE;
-			fragments["capability"]					= "OpCapability Float64\n";					// Adds 64-bit float capability
-			specializations["OPTYPE_DEFINITIONS"]	= "%f64 = OpTypeFloat 64\n";				// Adds 64-bit float type
-			specializations["TYPE_CONVERT"]			= "%sc_op32 = OpConvertFToS %i32 %sc_op\n";	// Converts 64-bit float to 32-bit integer
+			requiredFeatures.coreFeatures.shaderInt64		= VK_TRUE;
+			fragments["capability"]							+= "OpCapability Int64\n";							// Adds 64-bit integer capability
+			specializations["OPTYPE_DEFINITIONS"]			+= "%i64 = OpTypeInt 64 1\n";						// Adds 64-bit integer type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]				+= "%sc_op32 = OpSConvert %i32 %sc_op\n";			// Converts 64-bit integer to 32-bit integer
 		}
 
-		// Special SPIR-V code for FConvert-case for 16-bit floats
-		if (strcmp(cases[caseNdx].caseName, "fconvert16") == 0)
+		// Special SPIR-V code when using 64-bit floats.
+		if (cases[caseNdx].caseFlags & FLAG_F64)
 		{
+			requiredFeatures.coreFeatures.shaderFloat64		= VK_TRUE;
+			fragments["capability"]							+= "OpCapability Float64\n";						// Adds 64-bit float capability
+			specializations["OPTYPE_DEFINITIONS"]			+= "%f64 = OpTypeFloat 64\n";						// Adds 64-bit float type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]				+= "%sc_op32 = OpConvertFToS %i32 %sc_op\n";		// Converts 64-bit float to 32-bit integer
+		}
+
+		// Extension needed for float16 and int8.
+		if (cases[caseNdx].caseFlags & (FLAG_F16 | FLAG_I8))
 			extensions.push_back("VK_KHR_shader_float16_int8");
-			requiredFeatures.extFloat16Int8 = EXTFLOAT16INT8FEATURES_FLOAT16;
-			fragments["capability"]					= "OpCapability Float16\n";					// Adds 16-bit float capability
-			specializations["OPTYPE_DEFINITIONS"]	= "%f16 = OpTypeFloat 16\n";				// Adds 16-bit float type
-			specializations["TYPE_CONVERT"]			= "%sc_op32 = OpConvertFToS %i32 %sc_op\n";	// Converts 16-bit float to 32-bit integer
+
+		// Special SPIR-V code when using 16-bit floats.
+		if (cases[caseNdx].caseFlags & FLAG_F16)
+		{
+			requiredFeatures.extFloat16Int8				|= EXTFLOAT16INT8FEATURES_FLOAT16;
+			fragments["capability"]						+= "OpCapability Float16\n";						// Adds 16-bit float capability
+			specializations["OPTYPE_DEFINITIONS"]		+= "%f16 = OpTypeFloat 16\n";						// Adds 16-bit float type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]			+= "%sc_op32 = OpConvertFToS %i32 %sc_op\n";		// Converts 16-bit float to 32-bit integer
+		}
+
+		// Special SPIR-V code when using 8-bit integers.
+		if (cases[caseNdx].caseFlags & FLAG_I8)
+		{
+			requiredFeatures.extFloat16Int8				|= EXTFLOAT16INT8FEATURES_INT8;
+			fragments["capability"]						+= "OpCapability Int8\n";						// Adds 8-bit integer capability
+			specializations["OPTYPE_DEFINITIONS"]		+= "%i8 = OpTypeInt 8 1\n";						// Adds 8-bit integer type
+			if (cases[caseNdx].caseFlags & FLAG_CONVERT)
+				specializations["TYPE_CONVERT"]			+= "%sc_op32 = OpSConvert %i32 %sc_op\n";		// Converts 8-bit integer to 32-bit integer
 		}
 
 		specializations["SC_DEF0"]			= cases[caseNdx].scDefinition0;
@@ -7936,26 +8255,31 @@
 		fragments["pre_main"]				= tcu::StringTemplate(typesAndConstants1).specialize(specializations);
 		fragments["testfun"]				= tcu::StringTemplate(function1).specialize(specializations);
 
-		specConstants.append(&cases[caseNdx].scActualValue0, cases[caseNdx].scActualValueLength);
-		specConstants.append(&cases[caseNdx].scActualValue1, cases[caseNdx].scActualValueLength);
+		cases[caseNdx].scActualValue0.appendTo(specConstants);
+		cases[caseNdx].scActualValue1.appendTo(specConstants);
 
 		createTestsForAllStages(
 			cases[caseNdx].caseName, inputColors, cases[caseNdx].expectedColors, fragments, specConstants,
 			noPushConstants, noResources, noInterfaces, extensions, requiredFeatures, group.get());
 	}
 
-	const char	decorations2[]			=
+	const char			decorations2[]		=
 		"OpDecorate %sc_0  SpecId 0\n"
 		"OpDecorate %sc_1  SpecId 1\n"
 		"OpDecorate %sc_2  SpecId 2\n";
 
-	const char	typesAndConstants2[]	=
+	const std::string	typesAndConstants2	=
 		"%vec3_0      = OpConstantComposite %v3i32 %c_i32_0 %c_i32_0 %c_i32_0\n"
 		"%vec3_undef  = OpUndef %v3i32\n"
 
+		+ getSpecConstantOpStructConstantsAndTypes() + getSpecConstantOpStructComposites() +
+
 		"%sc_0        = OpSpecConstant %i32 0\n"
 		"%sc_1        = OpSpecConstant %i32 0\n"
 		"%sc_2        = OpSpecConstant %i32 0\n"
+
+		+ getSpecConstantOpStructConstBlock() +
+
 		"%sc_vec3_0   = OpSpecConstantOp %v3i32 CompositeInsert  %sc_0        %vec3_0      0\n"							// (sc_0, 0,    0)
 		"%sc_vec3_1   = OpSpecConstantOp %v3i32 CompositeInsert  %sc_1        %vec3_0      1\n"							// (0,    sc_1, 0)
 		"%sc_vec3_2   = OpSpecConstantOp %v3i32 CompositeInsert  %sc_2        %vec3_0      2\n"							// (0,    0,    sc_2)
@@ -7968,13 +8292,16 @@
 		"%sc_ext_1    = OpSpecConstantOp %i32   CompositeExtract %sc_vec3_012              1\n"							// sc_0
 		"%sc_ext_2    = OpSpecConstantOp %i32   CompositeExtract %sc_vec3_012              2\n"							// sc_1
 		"%sc_sub      = OpSpecConstantOp %i32   ISub             %sc_ext_0    %sc_ext_1\n"								// (sc_2 - sc_0)
-		"%sc_final    = OpSpecConstantOp %i32   IMul             %sc_sub      %sc_ext_2\n";								// (sc_2 - sc_0) * sc_1
+		"%sc_factor   = OpSpecConstantOp %i32   IMul             %sc_sub      %sc_ext_2\n";								// (sc_2 - sc_0) * sc_1
 
-	const char	function2[]				=
+	const std::string	function2			=
 		"%test_code = OpFunction %v4f32 None %v4f32_v4f32_function\n"
 		"%param     = OpFunctionParameter %v4f32\n"
 		"%label     = OpLabel\n"
 		"%result    = OpVariable %fp_v4f32 Function\n"
+
+		+ getSpecConstantOpStructInstructions() +
+
 		"             OpStore %result %param\n"
 		"%loc       = OpAccessChain %fp_f32 %result %sc_final\n"
 		"%val       = OpLoad %f32 %loc\n"
@@ -17188,7 +17515,7 @@
 	}
 
 	if (validatedCount < 16)
-		TCU_THROW(InternalError, "Too few samples has been validated.");
+		TCU_THROW(InternalError, "Too few samples have been validated.");
 
 	return success;
 }
@@ -19880,6 +20207,34 @@
 	return testGroup.release();
 }
 
+tcu::TestCaseGroup* createFunctionParamsGroup (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup>	testGroup (new tcu::TestCaseGroup(testCtx, "function_params", "Function parameter tests"));
+
+	static const char data_dir[] = "spirv_assembly/instruction/function_params";
+
+	static const struct
+	{
+		const std::string name;
+		const std::string desc;
+	} cases[] =
+	{
+		{ "sampler_param", "Test combined image sampler as function parameter" },
+	};
+
+	for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i)
+	{
+		cts_amber::AmberTestCase *testCase = cts_amber::createAmberTestCase(testCtx,
+																			cases[i].name.c_str(),
+																			cases[i].desc.c_str(),
+																			data_dir,
+																			cases[i].name + ".amber");
+		testGroup->addChild(testCase);
+	}
+
+	return testGroup.release();
+}
+
 tcu::TestCaseGroup* createInstructionTests (tcu::TestContext& testCtx)
 {
 	const bool testComputePipeline = true;
@@ -20039,6 +20394,7 @@
 	instructionTests->addChild(computeTests.release());
 	instructionTests->addChild(graphicsTests.release());
 	instructionTests->addChild(createSpirvVersion1p4Group(testCtx));
+	instructionTests->addChild(createFunctionParamsGroup(testCtx));
 
 	return instructionTests.release();
 }
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmSpirvVersion1p4Tests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmSpirvVersion1p4Tests.cpp
index 75b8952..44408b5 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmSpirvVersion1p4Tests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmSpirvVersion1p4Tests.cpp
@@ -240,6 +240,7 @@
 	group = CaseGroup(data_dir, "hlsl_functionality1");
 	group.add("counter_buffer", "CounterBuffer decoration");
 	group.add("decorate_string", "OpDecorateString");
+	group.add("member_decorate_string", "OpMemberDecorateString");
 	spirv1p4Tests->addChild(createTestGroup(testCtx, "hlsl_functionality1", "Features in SPV_GOOGLE_hlsl_functionality1 in SPIR-V 1.4", addTestsForAmberFiles, group));
 
 	group = CaseGroup(data_dir, "loop_control");
diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
index 6146063..bdc3d1e 100644
--- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
+++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
@@ -23,20 +23,21 @@
  * \brief SSBO layout case.
  *//*--------------------------------------------------------------------*/
 
-#include "vktSSBOLayoutCase.hpp"
-#include "gluShaderProgram.hpp"
+#include "deFloat16.h"
+#include "deInt32.h"
+#include "deMath.h"
+#include "deMemory.h"
+#include "deRandom.hpp"
+#include "deSharedPtr.hpp"
+#include "deString.h"
+#include "deStringUtil.hpp"
 #include "gluContextInfo.hpp"
+#include "gluShaderProgram.hpp"
 #include "gluShaderUtil.hpp"
 #include "gluVarType.hpp"
 #include "gluVarTypeUtil.hpp"
 #include "tcuTestLog.hpp"
-#include "deRandom.hpp"
-#include "deStringUtil.hpp"
-#include "deMemory.h"
-#include "deString.h"
-#include "deMath.h"
-#include "deSharedPtr.hpp"
-#include "deFloat16.h"
+#include "vktSSBOLayoutCase.hpp"
 
 #include "vkBuilderUtil.hpp"
 #include "vkMemUtil.hpp"
@@ -316,12 +317,6 @@
 	}
 }
 
-static inline int deRoundUp32 (int a, int b)
-{
-	int d = a/b;
-	return d*b == a ? a : (d+1)*b;
-}
-
 int computeStd140BaseAlignment (const VarType& type, deUint32 layoutFlags)
 {
 	const int vec4Alignment = (int)sizeof(deUint32)*4;
diff --git a/external/vulkancts/modules/vulkan/subgroups/CMakeLists.txt b/external/vulkancts/modules/vulkan/subgroups/CMakeLists.txt
index 4c4dd5a..68acef5 100644
--- a/external/vulkancts/modules/vulkan/subgroups/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/subgroups/CMakeLists.txt
@@ -27,12 +27,16 @@
   vktSubgroupsShuffleTests.hpp
   vktSubgroupsQuadTests.cpp
   vktSubgroupsQuadTests.hpp
+  vktSubgroupsScanHelpers.cpp
+  vktSubgroupsScanHelpers.hpp
   vktSubgroupsShapeTests.cpp
   vktSubgroupsShapeTests.hpp
   vktSubgroupsTestsUtils.cpp
   vktSubgroupsTestsUtils.hpp
   vktSubgroupsBallotMasksTests.cpp
   vktSubgroupsBallotMasksTests.hpp
+  vktSubgroupsSizeControlTests.cpp
+  vktSubgroupsSizeControlTests.hpp
   )
 
 set(DEQP_VK_SUBGROUPS_LIBS
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsArithmeticTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsArithmeticTests.cpp
index 97cb335..f6cd13a 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsArithmeticTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsArithmeticTests.cpp
@@ -24,6 +24,7 @@
  */ /*--------------------------------------------------------------------*/
 
 #include "vktSubgroupsArithmeticTests.hpp"
+#include "vktSubgroupsScanHelpers.hpp"
 #include "vktSubgroupsTestsUtils.hpp"
 
 #include <string>
@@ -62,406 +63,106 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static Operator getOperator(OpType t)
+{
+	switch (t)
+	{
+		case OPTYPE_ADD:
+		case OPTYPE_INCLUSIVE_ADD:
+		case OPTYPE_EXCLUSIVE_ADD:
+			return OPERATOR_ADD;
+		case OPTYPE_MUL:
+		case OPTYPE_INCLUSIVE_MUL:
+		case OPTYPE_EXCLUSIVE_MUL:
+			return OPERATOR_MUL;
+		case OPTYPE_MIN:
+		case OPTYPE_INCLUSIVE_MIN:
+		case OPTYPE_EXCLUSIVE_MIN:
+			return OPERATOR_MIN;
+		case OPTYPE_MAX:
+		case OPTYPE_INCLUSIVE_MAX:
+		case OPTYPE_EXCLUSIVE_MAX:
+			return OPERATOR_MAX;
+		case OPTYPE_AND:
+		case OPTYPE_INCLUSIVE_AND:
+		case OPTYPE_EXCLUSIVE_AND:
+			return OPERATOR_AND;
+		case OPTYPE_OR:
+		case OPTYPE_INCLUSIVE_OR:
+		case OPTYPE_EXCLUSIVE_OR:
+			return OPERATOR_OR;
+		case OPTYPE_XOR:
+		case OPTYPE_INCLUSIVE_XOR:
+		case OPTYPE_EXCLUSIVE_XOR:
+			return OPERATOR_XOR;
+		default:
+			DE_FATAL("Unsupported op type");
+			return OPERATOR_ADD;
+	}
+}
+
+static ScanType getScanType(OpType t)
+{
+	switch (t)
+	{
+		case OPTYPE_ADD:
+		case OPTYPE_MUL:
+		case OPTYPE_MIN:
+		case OPTYPE_MAX:
+		case OPTYPE_AND:
+		case OPTYPE_OR:
+		case OPTYPE_XOR:
+			return SCAN_REDUCE;
+		case OPTYPE_INCLUSIVE_ADD:
+		case OPTYPE_INCLUSIVE_MUL:
+		case OPTYPE_INCLUSIVE_MIN:
+		case OPTYPE_INCLUSIVE_MAX:
+		case OPTYPE_INCLUSIVE_AND:
+		case OPTYPE_INCLUSIVE_OR:
+		case OPTYPE_INCLUSIVE_XOR:
+			return SCAN_INCLUSIVE;
+		case OPTYPE_EXCLUSIVE_ADD:
+		case OPTYPE_EXCLUSIVE_MUL:
+		case OPTYPE_EXCLUSIVE_MIN:
+		case OPTYPE_EXCLUSIVE_MAX:
+		case OPTYPE_EXCLUSIVE_AND:
+		case OPTYPE_EXCLUSIVE_OR:
+		case OPTYPE_EXCLUSIVE_XOR:
+			return SCAN_EXCLUSIVE;
+		default:
+			DE_FATAL("Unsupported op type");
+			return SCAN_REDUCE;
+	}
+}
+
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 0x3);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0x3);
 }
 
-std::string getOpTypeName(int opType)
+std::string getOpTypeName(Operator op, ScanType scanType)
 {
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_ADD:
-			return "subgroupAdd";
-		case OPTYPE_MUL:
-			return "subgroupMul";
-		case OPTYPE_MIN:
-			return "subgroupMin";
-		case OPTYPE_MAX:
-			return "subgroupMax";
-		case OPTYPE_AND:
-			return "subgroupAnd";
-		case OPTYPE_OR:
-			return "subgroupOr";
-		case OPTYPE_XOR:
-			return "subgroupXor";
-		case OPTYPE_INCLUSIVE_ADD:
-			return "subgroupInclusiveAdd";
-		case OPTYPE_INCLUSIVE_MUL:
-			return "subgroupInclusiveMul";
-		case OPTYPE_INCLUSIVE_MIN:
-			return "subgroupInclusiveMin";
-		case OPTYPE_INCLUSIVE_MAX:
-			return "subgroupInclusiveMax";
-		case OPTYPE_INCLUSIVE_AND:
-			return "subgroupInclusiveAnd";
-		case OPTYPE_INCLUSIVE_OR:
-			return "subgroupInclusiveOr";
-		case OPTYPE_INCLUSIVE_XOR:
-			return "subgroupInclusiveXor";
-		case OPTYPE_EXCLUSIVE_ADD:
-			return "subgroupExclusiveAdd";
-		case OPTYPE_EXCLUSIVE_MUL:
-			return "subgroupExclusiveMul";
-		case OPTYPE_EXCLUSIVE_MIN:
-			return "subgroupExclusiveMin";
-		case OPTYPE_EXCLUSIVE_MAX:
-			return "subgroupExclusiveMax";
-		case OPTYPE_EXCLUSIVE_AND:
-			return "subgroupExclusiveAnd";
-		case OPTYPE_EXCLUSIVE_OR:
-			return "subgroupExclusiveOr";
-		case OPTYPE_EXCLUSIVE_XOR:
-			return "subgroupExclusiveXor";
-	}
-}
-
-std::string getOpTypeOperation(int opType, vk::VkFormat format, std::string lhs, std::string rhs)
-{
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_ADD:
-		case OPTYPE_INCLUSIVE_ADD:
-		case OPTYPE_EXCLUSIVE_ADD:
-			return lhs + " + " + rhs;
-		case OPTYPE_MUL:
-		case OPTYPE_INCLUSIVE_MUL:
-		case OPTYPE_EXCLUSIVE_MUL:
-			return lhs + " * " + rhs;
-		case OPTYPE_MIN:
-		case OPTYPE_INCLUSIVE_MIN:
-		case OPTYPE_EXCLUSIVE_MIN:
-			switch (format)
-			{
-				default:
-					return "min(" + lhs + ", " + rhs + ")";
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-					return "(isnan(" + lhs + ") ? " + rhs + " : (isnan(" + rhs + ") ? " + lhs + " : min(" + lhs + ", " + rhs + ")))";
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					return "mix(mix(min(" + lhs + ", " + rhs + "), " + lhs + ", isnan(" + rhs + ")), " + rhs + ", isnan(" + lhs + "))";
-			}
-		case OPTYPE_MAX:
-		case OPTYPE_INCLUSIVE_MAX:
-		case OPTYPE_EXCLUSIVE_MAX:
-			switch (format)
-			{
-				default:
-					return "max(" + lhs + ", " + rhs + ")";
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-					return "(isnan(" + lhs + ") ? " + rhs + " : (isnan(" + rhs + ") ? " + lhs + " : max(" + lhs + ", " + rhs + ")))";
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					return "mix(mix(max(" + lhs + ", " + rhs + "), " + lhs + ", isnan(" + rhs + ")), " + rhs + ", isnan(" + lhs + "))";
-			}
-		case OPTYPE_AND:
-		case OPTYPE_INCLUSIVE_AND:
-		case OPTYPE_EXCLUSIVE_AND:
-			switch (format)
-			{
-				default:
-					return lhs + " & " + rhs;
-				case VK_FORMAT_R8_USCALED:
-					return lhs + " && " + rhs;
-				case VK_FORMAT_R8G8_USCALED:
-					return "bvec2(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y)";
-				case VK_FORMAT_R8G8B8_USCALED:
-					return "bvec3(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y, " + lhs + ".z && " + rhs + ".z)";
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					return "bvec4(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y, " + lhs + ".z && " + rhs + ".z, " + lhs + ".w && " + rhs + ".w)";
-			}
-		case OPTYPE_OR:
-		case OPTYPE_INCLUSIVE_OR:
-		case OPTYPE_EXCLUSIVE_OR:
-			switch (format)
-			{
-				default:
-					return lhs + " | " + rhs;
-				case VK_FORMAT_R8_USCALED:
-					return lhs + " || " + rhs;
-				case VK_FORMAT_R8G8_USCALED:
-					return "bvec2(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y)";
-				case VK_FORMAT_R8G8B8_USCALED:
-					return "bvec3(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y, " + lhs + ".z || " + rhs + ".z)";
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					return "bvec4(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y, " + lhs + ".z || " + rhs + ".z, " + lhs + ".w || " + rhs + ".w)";
-			}
-		case OPTYPE_XOR:
-		case OPTYPE_INCLUSIVE_XOR:
-		case OPTYPE_EXCLUSIVE_XOR:
-			switch (format)
-			{
-				default:
-					return lhs + " ^ " + rhs;
-				case VK_FORMAT_R8_USCALED:
-					return lhs + " ^^ " + rhs;
-				case VK_FORMAT_R8G8_USCALED:
-					return "bvec2(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y)";
-				case VK_FORMAT_R8G8B8_USCALED:
-					return "bvec3(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y, " + lhs + ".z ^^ " + rhs + ".z)";
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					return "bvec4(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y, " + lhs + ".z ^^ " + rhs + ".z, " + lhs + ".w ^^ " + rhs + ".w)";
-			}
-	}
-}
-
-std::string getIdentity(int opType, vk::VkFormat format)
-{
-	const bool isFloat = subgroups::isFormatFloat(format);
-	const bool isInt = subgroups::isFormatSigned(format);
-	const bool isUnsigned = subgroups::isFormatUnsigned(format);
-
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_ADD:
-		case OPTYPE_INCLUSIVE_ADD:
-		case OPTYPE_EXCLUSIVE_ADD:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-		case OPTYPE_MUL:
-		case OPTYPE_INCLUSIVE_MUL:
-		case OPTYPE_EXCLUSIVE_MUL:
-			return subgroups::getFormatNameForGLSL(format) + "(1)";
-		case OPTYPE_MIN:
-		case OPTYPE_INCLUSIVE_MIN:
-		case OPTYPE_EXCLUSIVE_MIN:
-			if (isFloat)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0x7f800000))";
-			}
-			else if (isInt)
-			{
-				switch (format)
-				{
-					default:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffff)";
-					case VK_FORMAT_R8_SINT:
-					case VK_FORMAT_R8G8_SINT:
-					case VK_FORMAT_R8G8B8_SINT:
-					case VK_FORMAT_R8G8B8A8_SINT:
-					case VK_FORMAT_R8_UINT:
-					case VK_FORMAT_R8G8_UINT:
-					case VK_FORMAT_R8G8B8_UINT:
-					case VK_FORMAT_R8G8B8A8_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7f)";
-					case VK_FORMAT_R16_SINT:
-					case VK_FORMAT_R16G16_SINT:
-					case VK_FORMAT_R16G16B16_SINT:
-					case VK_FORMAT_R16G16B16A16_SINT:
-					case VK_FORMAT_R16_UINT:
-					case VK_FORMAT_R16G16_UINT:
-					case VK_FORMAT_R16G16B16_UINT:
-					case VK_FORMAT_R16G16B16A16_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fff)";
-					case VK_FORMAT_R64_SINT:
-					case VK_FORMAT_R64G64_SINT:
-					case VK_FORMAT_R64G64B64_SINT:
-					case VK_FORMAT_R64G64B64A64_SINT:
-					case VK_FORMAT_R64_UINT:
-					case VK_FORMAT_R64G64_UINT:
-					case VK_FORMAT_R64G64B64_UINT:
-					case VK_FORMAT_R64G64B64A64_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffffffffffffUL)";
-				}
-			}
-			else if (isUnsigned)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(-1)";
-			}
-			else
-			{
-				DE_FATAL("Unhandled case");
-				return "";
-			}
-		case OPTYPE_MAX:
-		case OPTYPE_INCLUSIVE_MAX:
-		case OPTYPE_EXCLUSIVE_MAX:
-			if (isFloat)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0xff800000))";
-			}
-			else if (isInt)
-			{
-				switch (format)
-				{
-					default:
-						return subgroups::getFormatNameForGLSL(format) + "(0x80000000)";
-					case VK_FORMAT_R8_SINT:
-					case VK_FORMAT_R8G8_SINT:
-					case VK_FORMAT_R8G8B8_SINT:
-					case VK_FORMAT_R8G8B8A8_SINT:
-					case VK_FORMAT_R8_UINT:
-					case VK_FORMAT_R8G8_UINT:
-					case VK_FORMAT_R8G8B8_UINT:
-					case VK_FORMAT_R8G8B8A8_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x80)";
-					case VK_FORMAT_R16_SINT:
-					case VK_FORMAT_R16G16_SINT:
-					case VK_FORMAT_R16G16B16_SINT:
-					case VK_FORMAT_R16G16B16A16_SINT:
-					case VK_FORMAT_R16_UINT:
-					case VK_FORMAT_R16G16_UINT:
-					case VK_FORMAT_R16G16B16_UINT:
-					case VK_FORMAT_R16G16B16A16_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x8000)";
-					case VK_FORMAT_R64_SINT:
-					case VK_FORMAT_R64G64_SINT:
-					case VK_FORMAT_R64G64B64_SINT:
-					case VK_FORMAT_R64G64B64A64_SINT:
-					case VK_FORMAT_R64_UINT:
-					case VK_FORMAT_R64G64_UINT:
-					case VK_FORMAT_R64G64B64_UINT:
-					case VK_FORMAT_R64G64B64A64_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x8000000000000000UL)";
-				}
-			}
-			else if (isUnsigned)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(0)";
-			}
-			else
-			{
-				DE_FATAL("Unhandled case");
-				return "";
-			}
-		case OPTYPE_AND:
-		case OPTYPE_INCLUSIVE_AND:
-		case OPTYPE_EXCLUSIVE_AND:
-			return subgroups::getFormatNameForGLSL(format) + "(~0)";
-		case OPTYPE_OR:
-		case OPTYPE_INCLUSIVE_OR:
-		case OPTYPE_EXCLUSIVE_OR:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-		case OPTYPE_XOR:
-		case OPTYPE_INCLUSIVE_XOR:
-		case OPTYPE_EXCLUSIVE_XOR:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-	}
-}
-
-std::string getCompare(int opType, vk::VkFormat format, std::string lhs, std::string rhs)
-{
-	std::string formatName = subgroups::getFormatNameForGLSL(format);
-	switch (format)
-	{
-		default:
-			return "all(equal(" + lhs + ", " + rhs + "))";
-		case VK_FORMAT_R8_USCALED:
-		case VK_FORMAT_R8_UINT:
-		case VK_FORMAT_R8_SINT:
-		case VK_FORMAT_R16_UINT:
-		case VK_FORMAT_R16_SINT:
-		case VK_FORMAT_R32_UINT:
-		case VK_FORMAT_R32_SINT:
-		case VK_FORMAT_R64_UINT:
-		case VK_FORMAT_R64_SINT:
-			return "(" + lhs + " == " + rhs + ")";
-		case VK_FORMAT_R16_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "(abs(" + lhs + " - " + rhs + ") < " + formatName + "(0.1))";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "(" + lhs + " == " + rhs + ")";
-			}
-		case VK_FORMAT_R32_SFLOAT:
-		case VK_FORMAT_R64_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "(abs(" + lhs + " - " + rhs + ") < 0.00001)";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "(" + lhs + " == " + rhs + ")";
-			}
-		case VK_FORMAT_R16G16_SFLOAT:
-		case VK_FORMAT_R16G16B16_SFLOAT:
-		case VK_FORMAT_R16G16B16A16_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.1)))";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "all(equal(" + lhs + ", " + rhs + "))";
-			}
-			break;
-		case VK_FORMAT_R32G32_SFLOAT:
-		case VK_FORMAT_R32G32B32_SFLOAT:
-		case VK_FORMAT_R32G32B32A32_SFLOAT:
-		case VK_FORMAT_R64G64_SFLOAT:
-		case VK_FORMAT_R64G64B64_SFLOAT:
-		case VK_FORMAT_R64G64B64A64_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.00001)))";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "all(equal(" + lhs + ", " + rhs + "))";
-			}
-	}
-	DE_FATAL("Unhandled case");
-	return "";
+   return getScanOpName("subgroup", "", op, scanType);
 }
 
 struct CaseDefinition
 {
-	int					opType;
+	Operator			op;
+	ScanType			scanType;
 	VkShaderStageFlags	shaderStage;
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
@@ -471,136 +172,73 @@
 			subgroups::getAdditionalExtensionForFormat(caseDef.format);
 }
 
+std::string getIndexVars(CaseDefinition caseDef)
+{
+	switch (caseDef.scanType)
+	{
+		case SCAN_REDUCE:
+			return "  uint start = 0, end = gl_SubgroupSize;\n";
+		case SCAN_INCLUSIVE:
+			return "  uint start = 0, end = gl_SubgroupInvocationID + 1;\n";
+		case SCAN_EXCLUSIVE:
+			return "  uint start = 0, end = gl_SubgroupInvocationID;\n";
+	}
+	DE_FATAL("Unreachable");
+	return "";
+}
+
+std::string getTestSrc(CaseDefinition caseDef)
+{
+	std::string indexVars = getIndexVars(caseDef);
+
+	return	"  uvec4 mask = subgroupBallot(true);\n"
+			+ indexVars +
+			"  " + subgroups::getFormatNameForGLSL(caseDef.format) + " ref = "
+			+ getIdentity(caseDef.op, caseDef.format) + ";\n"
+			"  tempRes = 0;\n"
+			"  for (uint index = start; index < end; index++)\n"
+			"  {\n"
+			"    if (subgroupBallotBitExtract(mask, index))\n"
+			"    {\n"
+			"      ref = " + getOpOperation(caseDef.op, caseDef.format, "ref", "data[index]") + ";\n"
+			"    }\n"
+			"  }\n"
+			"  tempRes = " + getCompare(caseDef.op, caseDef.format, "ref", getOpTypeName(caseDef.op, caseDef.scanType) + "(data[gl_SubgroupInvocationID])") + " ? 0x1 : 0;\n"
+			"  if (1 == (gl_SubgroupInvocationID % 2))\n"
+			"  {\n"
+			"    mask = subgroupBallot(true);\n"
+			"    ref = " + getIdentity(caseDef.op, caseDef.format) + ";\n"
+			"    for (uint index = start; index < end; index++)\n"
+			"    {\n"
+			"      if (subgroupBallotBitExtract(mask, index))\n"
+			"      {\n"
+			"        ref = " + getOpOperation(caseDef.op, caseDef.format, "ref", "data[index]") + ";\n"
+			"      }\n"
+			"    }\n"
+			"    tempRes |= " + getCompare(caseDef.op, caseDef.format, "ref", getOpTypeName(caseDef.op, caseDef.scanType) + "(data[gl_SubgroupInvocationID])") + " ? 0x2 : 0;\n"
+			"  }\n"
+			"  else\n"
+			"  {\n"
+			"    tempRes |= 0x2;\n"
+			"  }\n";
+}
+
 void initFrameBufferPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
 	const vk::ShaderBuildOptions	buildOptions	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
-	std::string						indexVars;
-	std::ostringstream				bdy;
 
-	switch (caseDef.opType)
-	{
-		default:
-			indexVars = "  uint start = 0, end = gl_SubgroupSize;\n";
-			break;
-		case OPTYPE_INCLUSIVE_ADD:
-		case OPTYPE_INCLUSIVE_MUL:
-		case OPTYPE_INCLUSIVE_MIN:
-		case OPTYPE_INCLUSIVE_MAX:
-		case OPTYPE_INCLUSIVE_AND:
-		case OPTYPE_INCLUSIVE_OR:
-		case OPTYPE_INCLUSIVE_XOR:
-			indexVars = "  uint start = 0, end = gl_SubgroupInvocationID + 1;\n";
-			break;
-		case OPTYPE_EXCLUSIVE_ADD:
-		case OPTYPE_EXCLUSIVE_MUL:
-		case OPTYPE_EXCLUSIVE_MIN:
-		case OPTYPE_EXCLUSIVE_MAX:
-		case OPTYPE_EXCLUSIVE_AND:
-		case OPTYPE_EXCLUSIVE_OR:
-		case OPTYPE_EXCLUSIVE_XOR:
-			indexVars = "  uint start = 0, end = gl_SubgroupInvocationID;\n";
-			break;
-	}
+	std::string extHeader	= getExtHeader(caseDef);
+	std::string testSrc		= getTestSrc(caseDef);
 
-	bdy << "  uvec4 mask = subgroupBallot(true);\n"
-		<< indexVars
-		<< "  " << subgroups::getFormatNameForGLSL(caseDef.format) << " ref = "
-		<< getIdentity(caseDef.opType, caseDef.format) << ";\n"
-		<< "  tempRes = 0;\n"
-		<< "  for (uint index = start; index < end; index++)\n"
-		<< "  {\n"
-		<< "    if (subgroupBallotBitExtract(mask, index))\n"
-		<< "    {\n"
-		<< "      ref = " << getOpTypeOperation(caseDef.opType, caseDef.format, "ref", "data[index]") << ";\n"
-		<< "    }\n"
-		<< "  }\n"
-		<< "  tempRes = " << getCompare(caseDef.opType, caseDef.format, "ref",
-											getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID])") << " ? 0x1 : 0;\n"
-		<< "  if (1 == (gl_SubgroupInvocationID % 2))\n"
-		<< "  {\n"
-		<< "    mask = subgroupBallot(true);\n"
-		<< "    ref = " << getIdentity(caseDef.opType, caseDef.format) << ";\n"
-		<< "    for (uint index = start; index < end; index++)\n"
-		<< "    {\n"
-		<< "      if (subgroupBallotBitExtract(mask, index))\n"
-		<< "      {\n"
-		<< "        ref = " << getOpTypeOperation(caseDef.opType, caseDef.format, "ref", "data[index]") << ";\n"
-		<< "      }\n"
-		<< "    }\n"
-		<< "    tempRes |= " << getCompare(caseDef.opType, caseDef.format, "ref",
-				getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID])") << " ? 0x2 : 0;\n"
-		<< "  }\n"
-		<< "  else\n"
-		<< "  {\n"
-		<< "    tempRes |= 0x2;\n"
-		<< "  }\n";
-
-	subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, getExtHeader(caseDef), bdy.str(), "");
+	subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, extHeader, testSrc, "");
 }
 
 void initPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
 	const vk::ShaderBuildOptions	buildOptions	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
 
-	std::string indexVars;
-	switch (caseDef.opType)
-	{
-		default:
-			indexVars = "  uint start = 0, end = gl_SubgroupSize;\n";
-			break;
-		case OPTYPE_INCLUSIVE_ADD:
-		case OPTYPE_INCLUSIVE_MUL:
-		case OPTYPE_INCLUSIVE_MIN:
-		case OPTYPE_INCLUSIVE_MAX:
-		case OPTYPE_INCLUSIVE_AND:
-		case OPTYPE_INCLUSIVE_OR:
-		case OPTYPE_INCLUSIVE_XOR:
-			indexVars = "  uint start = 0, end = gl_SubgroupInvocationID + 1;\n";
-			break;
-		case OPTYPE_EXCLUSIVE_ADD:
-		case OPTYPE_EXCLUSIVE_MUL:
-		case OPTYPE_EXCLUSIVE_MIN:
-		case OPTYPE_EXCLUSIVE_MAX:
-		case OPTYPE_EXCLUSIVE_AND:
-		case OPTYPE_EXCLUSIVE_OR:
-		case OPTYPE_EXCLUSIVE_XOR:
-			indexVars = "  uint start = 0, end = gl_SubgroupInvocationID;\n";
-			break;
-	}
-
-	const string testSrc =
-		"  uvec4 mask = subgroupBallot(true);\n"
-		+ indexVars +
-		"  " + subgroups::getFormatNameForGLSL(caseDef.format) + " ref = "
-		+ getIdentity(caseDef.opType, caseDef.format) + ";\n"
-		"  tempRes = 0;\n"
-		"  for (uint index = start; index < end; index++)\n"
-		"  {\n"
-		"    if (subgroupBallotBitExtract(mask, index))\n"
-		"    {\n"
-		"      ref = " + getOpTypeOperation(caseDef.opType, caseDef.format, "ref", "data[index]") + ";\n"
-		"    }\n"
-		"  }\n"
-		"  tempRes = " + getCompare(caseDef.opType, caseDef.format, "ref", getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID])") + " ? 0x1 : 0;\n"
-		"  if (1 == (gl_SubgroupInvocationID % 2))\n"
-		"  {\n"
-		"    mask = subgroupBallot(true);\n"
-		"    ref = " + getIdentity(caseDef.opType, caseDef.format) + ";\n"
-		"    for (uint index = start; index < end; index++)\n"
-		"    {\n"
-		"      if (subgroupBallotBitExtract(mask, index))\n"
-		"      {\n"
-		"        ref = " + getOpTypeOperation(caseDef.opType, caseDef.format, "ref", "data[index]") + ";\n"
-		"      }\n"
-		"    }\n"
-		"    tempRes |= " + getCompare(caseDef.opType, caseDef.format, "ref", getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID])") + " ? 0x2 : 0;\n"
-		"  }\n"
-		"  else\n"
-		"  {\n"
-		"    tempRes |= 0x2;\n"
-		"  }\n";
-
-	std::string extHeader = getExtHeader(caseDef);
+	std::string extHeader	= getExtHeader(caseDef);
+	std::string testSrc		= getTestSrc(caseDef);
 
 	subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, extHeader, testSrc, "");
 }
@@ -616,16 +254,35 @@
 	if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
 		TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
 tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
 {
-	if (!subgroups::areSubgroupOperationsSupportedForStage(
-				context, caseDef.shaderStage))
+	if (!subgroups::areSubgroupOperationsSupportedForStage(context, caseDef.shaderStage))
 	{
-		if (subgroups::areSubgroupOperationsRequiredForStage(
-					caseDef.shaderStage))
+		if (subgroups::areSubgroupOperationsRequiredForStage(caseDef.shaderStage))
 		{
 			return tcu::TestStatus::fail(
 					   "Shader stage " +
@@ -645,40 +302,23 @@
 	inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
 
-bool checkShaderStages (Context& context, const CaseDefinition& caseDef)
-{
-	if (!subgroups::areSubgroupOperationsSupportedForStage(
-				context, caseDef.shaderStage))
-	{
-		if (subgroups::areSubgroupOperationsRequiredForStage(
-					caseDef.shaderStage))
-		{
-			return false;
-		}
-		else
-		{
-			TCU_THROW(NotSupportedError, "Device does not support subgroup operations for this stage");
-		}
-	}
-	return true;
-}
 
 tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
 {
 	if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
 	{
-		if (!checkShaderStages(context,caseDef))
+		if (!subgroups::areSubgroupOperationsSupportedForStage(context, caseDef.shaderStage))
 		{
 			return tcu::TestStatus::fail(
 					"Shader stage " +
@@ -691,7 +331,35 @@
 		inputData.numElements = subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log = context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -726,7 +394,8 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData,
+									1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -760,87 +429,44 @@
 
 		for (int opTypeIndex = 0; opTypeIndex < OPTYPE_LAST; ++opTypeIndex)
 		{
-			bool isBool = false;
-			bool isFloat = false;
+			bool isBool = subgroups::isFormatBool(format);
+			bool isFloat = subgroups::isFormatFloat(format);
 
-			switch (format)
-			{
-				default:
-					break;
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					isFloat = true;
-					break;
-				case VK_FORMAT_R8_USCALED:
-				case VK_FORMAT_R8G8_USCALED:
-				case VK_FORMAT_R8G8B8_USCALED:
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					isBool = true;
-					break;
-			}
+			OpType opType = static_cast<OpType>(opTypeIndex);
+			Operator op = getOperator(opType);
+			ScanType st = getScanType(opType);
 
-			bool isBitwiseOp = false;
+			bool isBitwiseOp = (op == OPERATOR_AND || op == OPERATOR_OR || op == OPERATOR_XOR);
 
-			switch (opTypeIndex)
-			{
-				default:
-					break;
-				case OPTYPE_AND:
-				case OPTYPE_INCLUSIVE_AND:
-				case OPTYPE_EXCLUSIVE_AND:
-				case OPTYPE_OR:
-				case OPTYPE_INCLUSIVE_OR:
-				case OPTYPE_EXCLUSIVE_OR:
-				case OPTYPE_XOR:
-				case OPTYPE_INCLUSIVE_XOR:
-				case OPTYPE_EXCLUSIVE_XOR:
-					isBitwiseOp = true;
-					break;
-			}
-
+			// Skip float with bitwise category.
 			if (isFloat && isBitwiseOp)
-			{
-				// Skip float with bitwise category.
 				continue;
-			}
 
+			// Skip bool when its not the bitwise category.
 			if (isBool && !isBitwiseOp)
-			{
-				// Skip bool when its not the bitwise category.
 				continue;
-			}
-			std::string op = getOpTypeName(opTypeIndex);
+
+			const std::string name = de::toLower(getOpTypeName(op, st)) + "_" + subgroups::getFormatNameForGLSL(format);
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
-				addFunctionCaseWithPrograms(computeGroup.get(),
-											de::toLower(op) + "_" +
-											subgroups::getFormatNameForGLSL(format),
+				CaseDefinition caseDef = {op, st, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				addFunctionCaseWithPrograms(computeGroup.get(), name,
+											"", supportedCheck, initPrograms, test, caseDef);
+				caseDef.requiredSubgroupSize = DE_TRUE;
+				addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize",
 											"", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
-				addFunctionCaseWithPrograms(graphicGroup.get(),
-											de::toLower(op) + "_" +
-											subgroups::getFormatNameForGLSL(format),
+				const CaseDefinition caseDef = {op, st, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				addFunctionCaseWithPrograms(graphicGroup.get(), name,
 											"", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
-				addFunctionCaseWithPrograms(framebufferGroup.get(), de::toLower(op) + "_" + subgroups::getFormatNameForGLSL(format) +
+				const CaseDefinition caseDef = {op, st, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				addFunctionCaseWithPrograms(framebufferGroup.get(), name +
 											"_" + getShaderStageName(caseDef.shaderStage), "",
 											supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 			}
@@ -856,6 +482,5 @@
 
 	return group.release();
 }
-
 } // subgroups
 } // vkt
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
index 07ae70d..dbc7b25 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
@@ -44,16 +44,18 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 3);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 3);
 }
 
@@ -81,6 +83,7 @@
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
 	deBool				extShaderSubGroupBallotTests;
+	deBool				requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
@@ -262,7 +265,30 @@
 	if ((caseDef.opType == OPTYPE_BROADCAST_NONCONST) && !subgroups::isSubgroupBroadcastDynamicIdSupported(context))
 		TCU_THROW(NotSupportedError, "Device does not support SubgroupBroadcastDynamicId");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
+
+
 }
 
 tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
@@ -289,13 +315,13 @@
 	inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -318,7 +344,35 @@
 		inputData.numElements = caseDef.extShaderSubGroupBallotTests ? 64u : subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log	= context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -353,7 +407,7 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -400,16 +454,22 @@
 			const std::string name = getOpTypeCaseName(opTypeIndex) + "_" + subgroups::getFormatNameForGLSL(format);
 
 			{
-				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
 				addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
 				if (formatTypeIsSupportedARB)
 					addFunctionCaseWithPrograms(computeGroupARB.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 
+				caseDef.extShaderSubGroupBallotTests = DE_FALSE;
+				caseDef.requiredSubgroupSize = DE_TRUE;
+				addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
+				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
+				if (formatTypeIsSupportedARB)
+					addFunctionCaseWithPrograms(computeGroupARB.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			{
-				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
 				addFunctionCaseWithPrograms(graphicGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
 				if (formatTypeIsSupportedARB)
@@ -419,7 +479,7 @@
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
 				addFunctionCaseWithPrograms(framebufferGroup.get(), name + getShaderStageName(caseDef.shaderStage), "",
 							supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotMasksTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotMasksTests.cpp
index cf0ef40..1274730 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotMasksTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotMasksTests.cpp
@@ -46,16 +46,18 @@
 	MASKTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 0xf);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0xf);
 }
 
@@ -85,6 +87,7 @@
 	int					maskType;
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 std::string getBodySource(CaseDefinition caseDef)
@@ -403,6 +406,27 @@
 	if (!subgroups::isInt64SupportedForDevice(context))
 		TCU_THROW(NotSupportedError, "Int64 is not supported");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -425,11 +449,11 @@
 	}
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -445,7 +469,35 @@
 				subgroups::getShaderStageName(caseDef.shaderStage) +
 				" is required to support subgroup operations!");
 		}
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute);
+
+		tcu::TestLog& log	= context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -472,7 +524,7 @@
 		if ((VkShaderStageFlagBits)0u == stages)
 			TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
 	}
 	return tcu::TestStatus::pass("OK");
 }
@@ -503,18 +555,20 @@
 		const string mask = de::toLower(getMaskTypeName(maskTypeIndex));
 
 		{
-			const CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+			CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(computeGroup.get(), mask, "", supportedCheck, initPrograms, test, caseDef);
+			caseDef.requiredSubgroupSize = DE_TRUE;
+			addFunctionCaseWithPrograms(computeGroup.get(), mask + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 		}
 
 		{
-			const CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(graphicGroup.get(), mask, "", supportedCheck, initPrograms, test, caseDef);
 		}
 
 		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 		{
-			const CaseDefinition caseDef = {maskTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {maskTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(framebufferGroup.get(), mask + "_" + getShaderStageName(caseDef.shaderStage), "", supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 		}
 	}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotOtherTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotOtherTests.cpp
index 930b1ce..4fa0e3c 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotOtherTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotOtherTests.cpp
@@ -48,16 +48,18 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 0xf);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0xf);
 }
 
@@ -90,6 +92,7 @@
 	int					opType;
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 std::string getBodySource(CaseDefinition caseDef)
@@ -148,21 +151,12 @@
 				<< "  tempResult |= 0 == subgroupBallotInclusiveBitCount(allZeros) ? 0x2 : 0;\n"
 				<< "  tempResult |= 0 < subgroupBallotInclusiveBitCount(subgroupBallot(true)) ? 0x4 : 0;\n"
 				<< "  tempResult |= 0x8;\n"
-				<< "  uvec4 inclusiveUndef = MAKE_HIGH_BALLOT_RESULT(inclusiveOffset);\n"
-				<< "  bool undefTerritory = false;\n"
-				<< "  for (uint i = 0; i <= 128; i++)\n"
+				<< "  for (uint i = 0; i < 128; i++)\n"
 				<< "  {\n"
-				<< "    uvec4 iUndef = MAKE_HIGH_BALLOT_RESULT(i);\n"
-				<< "    if (iUndef == inclusiveUndef)"
-				<< "    {\n"
-				<< "      undefTerritory = true;\n"
-				<< "    }\n"
-				<< "    uint inclusiveBitCount = subgroupBallotInclusiveBitCount(iUndef);\n"
-				<< "    if (undefTerritory && (0 != inclusiveBitCount))\n"
-				<< "    {\n"
-				<< "      tempResult &= ~0x8;\n"
-				<< "    }\n"
-				<< "    else if (!undefTerritory && (0 == inclusiveBitCount))\n"
+				<< "    uint ref = inclusiveOffset - min(inclusiveOffset, i);\n"
+				<< "    uvec4 b = MAKE_HIGH_BALLOT_RESULT(i);\n"
+				<< "    uint inclusiveBitCount = subgroupBallotInclusiveBitCount(b);\n"
+				<< "    if (inclusiveBitCount != ref)\n"
 				<< "    {\n"
 				<< "      tempResult &= ~0x8;\n"
 				<< "    }\n"
@@ -174,21 +168,12 @@
 				<< "  tempResult |= 0 == subgroupBallotExclusiveBitCount(allZeros) ? 0x2 : 0;\n"
 				<< "  tempResult |= 0x4;\n"
 				<< "  tempResult |= 0x8;\n"
-				<< "  uvec4 exclusiveUndef = MAKE_HIGH_BALLOT_RESULT(exclusiveOffset);\n"
-				<< "  bool undefTerritory = false;\n"
-				<< "  for (uint i = 0; i <= 128; i++)\n"
+				<< "  for (uint i = 0; i < 128; i++)\n"
 				<< "  {\n"
-				<< "    uvec4 iUndef = MAKE_HIGH_BALLOT_RESULT(i);\n"
-				<< "    if (iUndef == exclusiveUndef)"
-				<< "    {\n"
-				<< "      undefTerritory = true;\n"
-				<< "    }\n"
-				<< "    uint exclusiveBitCount = subgroupBallotExclusiveBitCount(iUndef);\n"
-				<< "    if (undefTerritory && (0 != exclusiveBitCount))\n"
-				<< "    {\n"
-				<< "      tempResult &= ~0x4;\n"
-				<< "    }\n"
-				<< "    else if (!undefTerritory && (0 == exclusiveBitCount))\n"
+				<< "    uint ref = exclusiveOffset - min(exclusiveOffset, i);\n"
+				<< "    uvec4 b = MAKE_HIGH_BALLOT_RESULT(i);\n"
+				<< "    uint exclusiveBitCount = subgroupBallotExclusiveBitCount(b);\n"
+				<< "    if (exclusiveBitCount != ref)\n"
 				<< "    {\n"
 				<< "      tempResult &= ~0x8;\n"
 				<< "    }\n"
@@ -487,6 +472,27 @@
 		TCU_THROW(NotSupportedError, "Device does not support subgroup ballot operations");
 	}
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -509,11 +515,11 @@
 	}
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -529,7 +535,35 @@
 				subgroups::getShaderStageName(caseDef.shaderStage) +
 				" is required to support subgroup operations!");
 		}
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute);
+
+		tcu::TestLog& log	= context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -556,7 +590,7 @@
 		if ((VkShaderStageFlagBits)0u == stages)
 			TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
 	}
 	return tcu::TestStatus::pass("OK");
 }
@@ -587,18 +621,20 @@
 	{
 		const string op = de::toLower(getOpTypeName(opTypeIndex));
 		{
-			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+			CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(computeGroup.get(), op, "", supportedCheck, initPrograms, test, caseDef);
+			caseDef.requiredSubgroupSize = DE_TRUE;
+			addFunctionCaseWithPrograms(computeGroup.get(), op + "_requiredsubgroupSize", "", supportedCheck, initPrograms, test, caseDef);
 		}
 
 		{
-			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(graphicGroup.get(), op, "", supportedCheck, initPrograms, test, caseDef);
 		}
 
 		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 		{
-			const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(framebufferGroup.get(), op + "_" + getShaderStageName(caseDef.shaderStage), "", supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 		}
 	}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotTests.cpp
index 7b11007..d983650 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotTests.cpp
@@ -36,16 +36,18 @@
 
 namespace
 {
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 0x7);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0x7);
 }
 
@@ -54,8 +56,10 @@
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
 	deBool				extShaderSubGroupBallotTests;
+	deBool				requiredSubgroupSize;
 };
 
+
 void initFrameBufferPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
 	const vk::SpirVAsmBuildOptions	buildOptionsSpr	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3);
@@ -916,6 +920,27 @@
 		TCU_THROW(NotSupportedError, "Device does not support int64 data types");
 	}
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -944,13 +969,13 @@
 	inputData[0].initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -972,7 +997,35 @@
 		inputData[0].numElements = subgroups::maxSupportedSubgroupSize();
 		inputData[0].initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log	= context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -1007,7 +1060,7 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -1040,16 +1093,22 @@
 		VK_SHADER_STAGE_VERTEX_BIT
 	};
 
+
 	{
-		CaseDefinition caseDef = {VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
+		CaseDefinition caseDef = {VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
 		addFunctionCaseWithPrograms(computeGroup.get(), getShaderStageName(caseDef.shaderStage), "", supportedCheck, initPrograms, test, caseDef);
 		caseDef.extShaderSubGroupBallotTests = DE_TRUE;
 		addFunctionCaseWithPrograms(computeGroupEXT.get(), getShaderStageName(caseDef.shaderStage), "", supportedCheck, initPrograms, test, caseDef);
 
+		caseDef.requiredSubgroupSize = DE_TRUE;
+		caseDef.extShaderSubGroupBallotTests = DE_FALSE;
+		addFunctionCaseWithPrograms(computeGroup.get(), getShaderStageName(caseDef.shaderStage) + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
+		caseDef.extShaderSubGroupBallotTests = DE_TRUE;
+		addFunctionCaseWithPrograms(computeGroupEXT.get(), getShaderStageName(caseDef.shaderStage) + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 	}
 
 	{
-		CaseDefinition caseDef = {VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
+		CaseDefinition caseDef = {VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
 		addFunctionCaseWithPrograms(graphicGroup.get(), "graphic", "", supportedCheck, initPrograms, test, caseDef);
 		caseDef.extShaderSubGroupBallotTests = DE_TRUE;
 		addFunctionCaseWithPrograms(graphicGroupEXT.get(), "graphic", "", supportedCheck, initPrograms, test, caseDef);
@@ -1057,7 +1116,7 @@
 
 	for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 	{
-		CaseDefinition caseDef = {stages[stageIndex],de::SharedPtr<bool>(new bool), DE_FALSE};
+		CaseDefinition caseDef = {stages[stageIndex],de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
 		addFunctionCaseWithPrograms(framebufferGroup.get(), getShaderStageName(caseDef.shaderStage), "",
 					supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 		caseDef.extShaderSubGroupBallotTests = DE_TRUE;
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBasicTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBasicTests.cpp
index 8388d5a..fe0bbd7 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBasicTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBasicTests.cpp
@@ -71,21 +71,24 @@
 	return true;
 }
 
-static bool checkFragmentSubgroupBarriersNoSSBO(std::vector<const void*> datas,
+static bool checkFragmentSubgroupBarriersNoSSBO(const void *internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32 height, deUint32)
 {
+	DE_UNREF(internalData);
 	return _checkFragmentSubgroupBarriersNoSSBO(datas, width, height, false);
 }
 
-static bool checkFragmentSubgroupBarriersWithImageNoSSBO(std::vector<const void*> datas,
+static bool checkFragmentSubgroupBarriersWithImageNoSSBO(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32 height, deUint32)
 {
+	DE_UNREF(internalData);
 	return _checkFragmentSubgroupBarriersNoSSBO(datas, width, height, true);
 }
 
-static bool checkVertexPipelineStagesSubgroupElectNoSSBO(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupElectNoSSBO(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	const float* const	resultData			= reinterpret_cast<const float*>(datas[0]);
 	float				poisonValuesFound	= 0.0f;
 	float				numSubgroupsUsed	= 0.0f;
@@ -110,9 +113,10 @@
 	return numSubgroupsUsed == poisonValuesFound;
 }
 
-static bool checkVertexPipelineStagesSubgroupElect(std::vector<const void*> datas,
-		deUint32 width, deUint32)
+static bool checkVertexPipelineStagesSubgroupElect(const void* internalData, std::vector<const void*> datas,
+		deUint32 width, deUint32, bool multipleCallsPossible)
 {
+	DE_UNREF(internalData);
 	const deUint32* const resultData =
 		reinterpret_cast<const deUint32*>(datas[0]);
 	deUint32 poisonValuesFound = 0;
@@ -138,12 +142,13 @@
 	const deUint32 numSubgroupsUsed =
 		*reinterpret_cast<const deUint32*>(datas[1]);
 
-	return numSubgroupsUsed == poisonValuesFound;
+	return (multipleCallsPossible ? (numSubgroupsUsed >= poisonValuesFound) : (numSubgroupsUsed == poisonValuesFound));
 }
 
-static bool checkVertexPipelineStagesSubgroupBarriers(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupBarriers(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	const deUint32* const resultData = reinterpret_cast<const deUint32*>(datas[0]);
 
 	// We used this SSBO to generate our unique value!
@@ -185,15 +190,17 @@
 	return true;
 }
 
-static bool checkVertexPipelineStagesSubgroupBarriersNoSSBO(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupBarriersNoSSBO(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return _checkVertexPipelineStagesSubgroupBarriersNoSSBO(datas, width, false);
 }
 
-static bool checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return _checkVertexPipelineStagesSubgroupBarriersNoSSBO(datas, width, true);
 }
 
@@ -217,29 +224,33 @@
 	return true;
 }
 
-static bool checkTessellationEvaluationSubgroupBarriersWithImageNoSSBO(std::vector<const void*> datas,
+static bool checkTessellationEvaluationSubgroupBarriersWithImageNoSSBO(const void* internalData, std::vector<const void*> datas,
 	deUint32 width, deUint32 height)
 {
+	DE_UNREF(internalData);
 	return _checkTessellationEvaluationSubgroupBarriersNoSSBO(datas, width, height, true);
 }
 
-static bool checkTessellationEvaluationSubgroupBarriersNoSSBO(std::vector<const void*> datas,
+static bool checkTessellationEvaluationSubgroupBarriersNoSSBO(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32 height)
 {
+	DE_UNREF(internalData);
 	return _checkTessellationEvaluationSubgroupBarriersNoSSBO(datas, width, height, false);
 }
 
-static bool checkComputeSubgroupElect(std::vector<const void*> datas,
+static bool checkComputeSubgroupElect(const void* internalData, std::vector<const void*> datas,
 									  const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 									  deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
-static bool checkComputeSubgroupBarriers(std::vector<const void*> datas,
+static bool checkComputeSubgroupBarriers(const void* internalData, std::vector<const void*> datas,
 		const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 		deUint32)
 {
+	DE_UNREF(internalData);
 	// We used this SSBO to generate our unique value!
 	const deUint32 ref = *reinterpret_cast<const deUint32*>(datas[2]);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, ref);
@@ -283,6 +294,7 @@
 	int					opType;
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 void initFrameBufferPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
@@ -1187,7 +1199,7 @@
 			programCollection.glslSources.add("vert")
 				<< glu::VertexSource(vertex.str()) << buildOptions;
 		}
-	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+		else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
 		{
 			std::ostringstream geometry;
 
@@ -1247,6 +1259,7 @@
 				<< "    gl_TessLevelOuter[1] = 1.0f;\n"
 				<< "  }\n"
 				<< "  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+				<< (*caseDef.geometryPointSizeSupported ? "  gl_out[gl_InvocationID].gl_PointSize = gl_in[gl_InvocationID].gl_PointSize;\n" : "" )
 				<< "}\n";
 
 			evaluationSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
@@ -1281,6 +1294,7 @@
 				<< "  out_color.g = float(value);\n"
 				<< "  out_color.a = float(tempResult2);\n"
 				<< "  gl_Position = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);\n"
+				<< (*caseDef.geometryPointSizeSupported ? "  gl_PointSize = gl_in[0].gl_PointSize;\n" : "" )
 				<< "}\n";
 
 			programCollection.glslSources.add("tesc")
@@ -1330,6 +1344,7 @@
 				<< "  out_color[gl_InvocationID].g = float(value);\n"
 				<< "  out_color[gl_InvocationID].a = float(tempResult2);\n"
 				<< "  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+				<< (*caseDef.geometryPointSizeSupported ? "  gl_out[gl_InvocationID].gl_PointSize = gl_in[gl_InvocationID].gl_PointSize;\n" : "" )
 				<< "}\n";
 
 			evaluationSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
@@ -1342,6 +1357,7 @@
 				<< "void main (void)\n"
 				<< "{\n"
 				<< "  gl_Position = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);\n"
+				<< (*caseDef.geometryPointSizeSupported ? "  gl_PointSize = gl_in[0].gl_PointSize;\n" : "" )
 				<< "  out_color = in_color[0];\n"
 				<< "}\n";
 
@@ -1457,6 +1473,7 @@
 						<< "    gl_TessLevelOuter[1] = 1.0f;\n"
 						<< "  }\n"
 						<< "  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+						<< (*caseDef.geometryPointSizeSupported ? "  gl_out[gl_InvocationID].gl_PointSize = gl_in[0].gl_PointSize;\n" : "" )
 						<< "}\n";
 				programCollection.glslSources.add("tesc")
 					<< glu::TessellationControlSource(tesc.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
@@ -1482,6 +1499,7 @@
 						<< "  result[gl_PrimitiveID * 2 + uint(gl_TessCoord.x + 0.5)] = tempRes;\n"
 						<< "  float pixelSize = 2.0f/1024.0f;\n"
 						<< "  gl_Position = gl_in[0].gl_Position + gl_TessCoord.x * pixelSize / 2.0f;\n"
+						<< (*caseDef.geometryPointSizeSupported ? "  gl_PointSize = gl_in[0].gl_PointSize;\n" : "" )
 						<< "}\n";
 				programCollection.glslSources.add("tese")
 					<< glu::TessellationEvaluationSource(tese.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
@@ -1507,6 +1525,7 @@
 							<< testSrc.str()
 							<< "  result[gl_PrimitiveIDIn] = tempRes;\n"
 							<< "  gl_Position = gl_in[0].gl_Position;\n"
+							<< (*caseDef.geometryPointSizeSupported ? "  gl_PointSize = gl_in[0].gl_PointSize;\n" : "" )
 							<< "  EmitVertex();\n"
 							<< "  EndPrimitive();\n"
 							<< "}\n";
@@ -1699,7 +1718,8 @@
 					"    gl_TessLevelOuter[1] = 1.0f;\n"
 					"  }\n"
 					"  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
-					"}\n";
+					+ (*caseDef.geometryPointSizeSupported ? "  gl_out[gl_InvocationID].gl_PointSize = gl_in[gl_InvocationID].gl_PointSize;\n" : "" )
+					+ "}\n";
 				programCollection.glslSources.add("tesc")
 					<< glu::TessellationControlSource(tesc) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
 			}
@@ -1739,8 +1759,10 @@
 					"  uint tempResult = 0;\n"
 					+ bdy.str() +
 					"  result[gl_PrimitiveID * 2 + uint(gl_TessCoord.x + 0.5)] = tempResult;\n"
-					"  float pixelSize = 2.0f/1024.0f;\n""  gl_Position = gl_in[0].gl_Position + gl_TessCoord.x * pixelSize / 2.0f;\n"
-					"}\n";
+					"  float pixelSize = 2.0f/1024.0f;\n"
+					"  gl_Position = gl_in[0].gl_Position + gl_TessCoord.x * pixelSize / 2.0f;\n"
+					+ (*caseDef.geometryPointSizeSupported ? "  gl_PointSize = gl_in[0].gl_PointSize;\n" : "" )
+					+ "}\n";
 				programCollection.glslSources.add("tese")
 					<< glu::TessellationEvaluationSource(tese) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
 			}
@@ -1782,6 +1804,7 @@
 					 + bdy.str() +
 					"  result[gl_PrimitiveIDIn] = tempResult;\n"
 					"  gl_Position = gl_in[0].gl_Position;\n"
+					+ (*caseDef.geometryPointSizeSupported ? "  gl_PointSize = gl_in[0].gl_PointSize;\n" : "" ) +
 					"  EmitVertex();\n"
 					"  EndPrimitive();\n"
 					"}\n";
@@ -1837,6 +1860,27 @@
 	if (!subgroups::isSubgroupSupported(context))
 		TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -1900,9 +1944,9 @@
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
 	{
 		if (OPTYPE_ELECT == caseDef.opType)
-			return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, checkVertexPipelineStagesSubgroupElectNoSSBO);
+			return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO);
 		else
-			return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+			return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
 				(OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
 					checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO :
 					checkVertexPipelineStagesSubgroupBarriersNoSSBO
@@ -1910,7 +1954,7 @@
 	}
 	else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
 	{
-		return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+		return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
 			(OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
 				checkFragmentSubgroupBarriersWithImageNoSSBO :
 				checkFragmentSubgroupBarriersNoSSBO
@@ -1919,9 +1963,9 @@
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
 	{
 		if (OPTYPE_ELECT == caseDef.opType)
-			return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, checkVertexPipelineStagesSubgroupElectNoSSBO);
+			return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO);
 		else
-			return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+			return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
 				(OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
 					checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO :
 					checkVertexPipelineStagesSubgroupBarriersNoSSBO
@@ -1929,9 +1973,9 @@
 	}
 
 	if (OPTYPE_ELECT == caseDef.opType)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, checkVertexPipelineStagesSubgroupElectNoSSBO, caseDef.shaderStage);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO, caseDef.shaderStage);
 
-	return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+	return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
 		(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage) ?
 			((OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
 				checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO :
@@ -1971,7 +2015,35 @@
 
 		if (OPTYPE_ELECT == caseDef.opType)
 		{
-			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkComputeSubgroupElect);
+			if (caseDef.requiredSubgroupSize == DE_FALSE)
+				return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupElect);
+
+			tcu::TestLog& log	= context.getTestContext().getLog();
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+				<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+			// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+			for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+				{
+					tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkComputeSubgroupElect,
+																		size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+					if (result.getCode() != QP_TEST_RESULT_PASS)
+						{
+							log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+							return result;
+						}
+				}
+
+			return tcu::TestStatus::pass("OK");
 		}
 		else
 		{
@@ -1993,7 +2065,35 @@
 			inputDatas[2].initializeType = subgroups::SSBOData::InitializeNone;
 			inputDatas[2].isImage = true;
 
-			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, checkComputeSubgroupBarriers);
+			if (caseDef.requiredSubgroupSize == DE_FALSE)
+				return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkComputeSubgroupBarriers);
+
+			tcu::TestLog& log = context.getTestContext().getLog();
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+				<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+			// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+			for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+			{
+				tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkComputeSubgroupBarriers,
+																	size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+				if (result.getCode() != QP_TEST_RESULT_PASS)
+				{
+					log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+					return result;
+				}
+			}
+
+			return tcu::TestStatus::pass("OK");
 		}
 	}
 	else
@@ -2032,14 +2132,14 @@
 			subgroups::SSBOData inputData[inputCount];
 
 			inputData[0].format			= VK_FORMAT_R32_UINT;
-			inputData[0].layout			 = subgroups::SSBOData::LayoutStd430;
+			inputData[0].layout			= subgroups::SSBOData::LayoutStd430;
 			inputData[0].numElements	= 1;
 			inputData[0].initializeType	= subgroups::SSBOData::InitializeZero;
 			inputData[0].binding		= 4u;
 			inputData[0].stages			= VK_SHADER_STAGE_VERTEX_BIT;
 
 			inputData[1].format			= VK_FORMAT_R32_UINT;
-			inputData[1].layout			 = subgroups::SSBOData::LayoutStd430;
+			inputData[1].layout			= subgroups::SSBOData::LayoutStd430;
 			inputData[1].numElements	= 1;
 			inputData[1].initializeType	= subgroups::SSBOData::InitializeZero;
 			inputData[1].binding		= 5u;
@@ -2066,7 +2166,7 @@
 			inputData[4].binding		= 8u;
 			inputData[4].stages			= VK_SHADER_STAGE_FRAGMENT_BIT;
 
-			return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, inputCount, checkVertexPipelineStagesSubgroupElect, stages);
+			return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, inputCount, DE_NULL, checkVertexPipelineStagesSubgroupElect, stages);
 		}
 		else
 		{
@@ -2115,7 +2215,7 @@
 				inputDatas[index + 3].stages			= stagesBits[ndx];
 			}
 
-			return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, checkVertexPipelineStagesSubgroupBarriers, stages);
+			return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkVertexPipelineStagesSubgroupBarriers, stages);
 		}
 	}
 }
@@ -2149,9 +2249,12 @@
 		const std::string op = de::toLower(getOpTypeName(opTypeIndex));
 
 		{
-			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+			CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(computeGroup.get(), op, "",
 										supportedCheck, initPrograms, test, caseDef);
+			caseDef.requiredSubgroupSize = DE_TRUE;
+			addFunctionCaseWithPrograms(computeGroup.get(), op + "_requiredsubgroupsize", "",
+										supportedCheck, initPrograms, test, caseDef);
 		}
 
 		if (OPTYPE_SUBGROUP_MEMORY_BARRIER_SHARED == opTypeIndex)
@@ -2161,7 +2264,7 @@
 		}
 
 		{
-			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(graphicGroup.get(),
 										op, "",
 										supportedCheck, initPrograms, test, caseDef);
@@ -2172,10 +2275,10 @@
 			if (OPTYPE_ELECT == opTypeIndex && stageIndex == 0)
 				continue;		// This is not tested. I don't know why.
 
-			const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDefFrag = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(framebufferGroup.get(),
-						op + "_" + getShaderStageName(caseDef.shaderStage), "",
-						supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
+						op + "_" + getShaderStageName(caseDefFrag.shaderStage), "",
+						supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDefFrag);
 		}
 	}
 
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinMaskVarTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinMaskVarTests.cpp
index 209904b..9661ec1 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinMaskVarTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinMaskVarTests.cpp
@@ -38,16 +38,18 @@
 namespace subgroups
 {
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return check(datas, width, 1);
 }
 
-static bool checkComputeStage(std::vector<const void*> datas,
+static bool checkComputeStage(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -58,6 +60,7 @@
 	std::string			varName;
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 }
 
@@ -1356,6 +1359,27 @@
 	if (!subgroups::isSubgroupSupported(context))
 		TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -1382,11 +1406,11 @@
 	}
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if ((VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT | VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) & caseDef.shaderStage )
-		return makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 
-	return makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+	return makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 }
 
 
@@ -1405,7 +1429,36 @@
 						   "Shader stage " + getShaderStageName(caseDef.shaderStage) +
 						   " is required to support subgroup operations!");
 		}
-		return makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkComputeStage);
+
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeStage);
+
+		tcu::TestLog& log	= context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeStage,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -1432,7 +1485,7 @@
 		if ((VkShaderStageFlagBits)0u == stages)
 			TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 
@@ -1469,22 +1522,26 @@
 		const std::string varLower = de::toLower(var);
 
 		{
-			const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(graphicGroup.get(),
 										varLower, "",
 										supportedCheck, initPrograms, test, caseDef);
 		}
 
 		{
-			const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+			CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(computeGroup.get(),
 										varLower, "",
 										supportedCheck, initPrograms, test, caseDef);
+			caseDef.requiredSubgroupSize = DE_TRUE;
+			addFunctionCaseWithPrograms(computeGroup.get(),
+										varLower + "_requiredsubgroupsize", "",
+										supportedCheck, initPrograms, test, caseDef);
 		}
 
 		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 		{
-			const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(framebufferGroup.get(),
 						varLower + "_" +
 						getShaderStageName(caseDef.shaderStage), "",
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinVarTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinVarTests.cpp
index db34b6e..48a2102 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinVarTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinVarTests.cpp
@@ -38,9 +38,10 @@
 namespace subgroups
 {
 
-bool checkVertexPipelineStagesSubgroupSize(std::vector<const void*> datas,
+bool checkVertexPipelineStagesSubgroupSize(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32 subgroupSize)
 {
+	DE_UNREF(internalData);
 	const deUint32* data =
 		reinterpret_cast<const deUint32*>(datas[0]);
 	for (deUint32 x = 0; x < width; ++x)
@@ -54,9 +55,10 @@
 	return true;
 }
 
-bool checkVertexPipelineStagesSubgroupInvocationID(std::vector<const void*> datas,
+bool checkVertexPipelineStagesSubgroupInvocationID(const void* internalData, std::vector<const void*> datas,
 		deUint32 width, deUint32 subgroupSize)
 {
+	DE_UNREF(internalData);
 	const deUint32* data =
 		reinterpret_cast<const deUint32*>(datas[0]);
 	vector<deUint32> subgroupInvocationHits(subgroupSize, 0);
@@ -84,10 +86,11 @@
 	return true;
 }
 
-static bool checkComputeSubgroupSize(std::vector<const void*> datas,
+static bool checkComputeSubgroupSize(const void* internalData, std::vector<const void*> datas,
 									 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 									 deUint32 subgroupSize)
 {
+	DE_UNREF(internalData);
 	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
 	for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -134,10 +137,11 @@
 	return true;
 }
 
-static bool checkComputeSubgroupInvocationID(std::vector<const void*> datas,
+static bool checkComputeSubgroupInvocationID(const void* internalData, std::vector<const void*> datas,
 		const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 		deUint32 subgroupSize)
 {
+	DE_UNREF(internalData);
 	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
 	for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -201,11 +205,13 @@
 	return true;
 }
 
-static bool checkComputeNumSubgroups	(std::vector<const void*>	datas,
+static bool checkComputeNumSubgroups	(const void*				internalData,
+										std::vector<const void*>	datas,
 										const deUint32				numWorkgroups[3],
 										const deUint32				localSize[3],
 										deUint32)
 {
+	DE_UNREF(internalData);
 	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
 	for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -257,11 +263,13 @@
 	return true;
 }
 
-static bool checkComputeSubgroupID	(std::vector<const void*>	datas,
+static bool checkComputeSubgroupID	(const void*				internalData,
+									std::vector<const void*>	datas,
 									const deUint32				numWorkgroups[3],
 									const deUint32				localSize[3],
 									deUint32)
 {
+	DE_UNREF(internalData);
 	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
 	for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -318,6 +326,7 @@
 	std::string			varName;
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 }
 
@@ -1580,6 +1589,27 @@
 	if (!subgroups::isSubgroupSupported(context))
 		TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -1605,12 +1635,12 @@
 		if ("gl_SubgroupSize" == caseDef.varName)
 		{
 			return makeVertexFrameBufferTest(
-					   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize);
+					   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize);
 		}
 		else if ("gl_SubgroupInvocationID" == caseDef.varName)
 		{
 			return makeVertexFrameBufferTest(
-					   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID);
+					   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID);
 		}
 		else
 		{
@@ -1624,12 +1654,12 @@
 		if ("gl_SubgroupSize" == caseDef.varName)
 		{
 			return makeTessellationEvaluationFrameBufferTest(
-					context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize);
+					   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize);
 		}
 		else if ("gl_SubgroupInvocationID" == caseDef.varName)
 		{
 			return makeTessellationEvaluationFrameBufferTest(
-					context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID);
+					   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID);
 		}
 		else
 		{
@@ -1643,12 +1673,12 @@
 		if ("gl_SubgroupSize" == caseDef.varName)
 		{
 			return makeGeometryFrameBufferTest(
-					context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize);
+				    context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize);
 		}
 		else if ("gl_SubgroupInvocationID" == caseDef.varName)
 		{
 			return makeGeometryFrameBufferTest(
-					context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID);
+					context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID);
 		}
 		else
 		{
@@ -1677,19 +1707,131 @@
 
 		if ("gl_SubgroupSize" == caseDef.varName)
 		{
-			return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeSubgroupSize);
+			if (caseDef.requiredSubgroupSize == DE_FALSE)
+				return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupSize);
+
+			tcu::TestLog& log	= context.getTestContext().getLog();
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+				<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+			// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+			for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+			{
+				tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupSize,
+																		size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+				if (result.getCode() != QP_TEST_RESULT_PASS)
+				{
+					log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+					return result;
+				}
+			}
+
+			return tcu::TestStatus::pass("OK");
 		}
 		else if ("gl_SubgroupInvocationID" == caseDef.varName)
 		{
-			return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeSubgroupInvocationID);
+			if (caseDef.requiredSubgroupSize == DE_FALSE)
+				return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupInvocationID);
+
+			tcu::TestLog& log	= context.getTestContext().getLog();
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+				<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+			// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+			for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+			{
+				tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupInvocationID,
+																		size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+				if (result.getCode() != QP_TEST_RESULT_PASS)
+				{
+					log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+					return result;
+				}
+			}
+
+			return tcu::TestStatus::pass("OK");
 		}
 		else if ("gl_NumSubgroups" == caseDef.varName)
 		{
-			return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeNumSubgroups);
+			if (caseDef.requiredSubgroupSize == DE_FALSE)
+				return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeNumSubgroups);
+
+			tcu::TestLog& log	= context.getTestContext().getLog();
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+				<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+			// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+			for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+			{
+				tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeNumSubgroups,
+																		size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+				if (result.getCode() != QP_TEST_RESULT_PASS)
+				{
+					log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+					return result;
+				}
+			}
+
+			return tcu::TestStatus::pass("OK");
 		}
 		else if ("gl_SubgroupID" == caseDef.varName)
 		{
-			return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeSubgroupID);
+			if (caseDef.requiredSubgroupSize == DE_FALSE)
+				return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupID);
+
+			tcu::TestLog& log	= context.getTestContext().getLog();
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+				<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+			// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+			for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+			{
+				tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupID,
+																		size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+				if (result.getCode() != QP_TEST_RESULT_PASS)
+				{
+					log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+					return result;
+				}
+			}
+
+			return tcu::TestStatus::pass("OK");
 		}
 		else
 		{
@@ -1725,11 +1867,11 @@
 
 		if ("gl_SubgroupSize" == caseDef.varName)
 		{
-			return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize, stages);
+			return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize, stages);
 		}
 		else if ("gl_SubgroupInvocationID" == caseDef.varName)
 		{
-			return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID, stages);
+			return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID, stages);
 		}
 		else
 		{
@@ -1775,7 +1917,7 @@
 		const std::string varLower = de::toLower(var);
 
 		{
-			const CaseDefinition caseDef = { "gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = { "gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
 
 			addFunctionCaseWithPrograms(graphicGroup.get(),
 										varLower, "",
@@ -1783,15 +1925,19 @@
 		}
 
 		{
-			const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+			CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(computeGroup.get(),
 						varLower + "_" + getShaderStageName(caseDef.shaderStage), "",
 						supportedCheck, initPrograms, test, caseDef);
+			caseDef.requiredSubgroupSize = DE_TRUE;
+			addFunctionCaseWithPrograms(computeGroup.get(),
+						varLower + "_" + getShaderStageName(caseDef.shaderStage) + "_requiredsubgroupsize", "",
+						supportedCheck, initPrograms, test, caseDef);
 		}
 
 		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 		{
-			const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(framebufferGroup.get(),
 						varLower + "_" + getShaderStageName(caseDef.shaderStage), "",
 						supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
@@ -1802,10 +1948,13 @@
 	{
 		const std::string var = compute_only_vars[a];
 
-		const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+		CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 
 		addFunctionCaseWithPrograms(computeGroup.get(), de::toLower(var), "",
 									supportedCheck, initPrograms, test, caseDef);
+		caseDef.requiredSubgroupSize = DE_TRUE;
+		addFunctionCaseWithPrograms(computeGroup.get(), de::toLower(var) + "_requiredsubgroupsize", "",
+									supportedCheck, initPrograms, test, caseDef);
 	}
 
 	de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsClusteredTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsClusteredTests.cpp
index 005fe97..294e126 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsClusteredTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsClusteredTests.cpp
@@ -24,6 +24,7 @@
  */ /*--------------------------------------------------------------------*/
 
 #include "vktSubgroupsClusteredTests.hpp"
+#include "vktSubgroupsScanHelpers.hpp"
 #include "vktSubgroupsTestsUtils.hpp"
 
 #include <string>
@@ -48,341 +49,60 @@
 	OPTYPE_CLUSTERED_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static Operator getOperator(OpType t)
+{
+	switch (t)
+	{
+		case OPTYPE_CLUSTERED_ADD:	return OPERATOR_ADD;
+		case OPTYPE_CLUSTERED_MUL:	return OPERATOR_MUL;
+		case OPTYPE_CLUSTERED_MIN:	return OPERATOR_MIN;
+		case OPTYPE_CLUSTERED_MAX:	return OPERATOR_MAX;
+		case OPTYPE_CLUSTERED_AND:	return OPERATOR_AND;
+		case OPTYPE_CLUSTERED_OR:	return OPERATOR_OR;
+		case OPTYPE_CLUSTERED_XOR:	return OPERATOR_XOR;
+		default:
+			DE_FATAL("Unsupported op type");
+			return OPERATOR_ADD;
+	}
+}
+
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
-std::string getOpTypeName(int opType)
+std::string getOpTypeName(Operator op)
 {
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_CLUSTERED_ADD:
-			return "subgroupClusteredAdd";
-		case OPTYPE_CLUSTERED_MUL:
-			return "subgroupClusteredMul";
-		case OPTYPE_CLUSTERED_MIN:
-			return "subgroupClusteredMin";
-		case OPTYPE_CLUSTERED_MAX:
-			return "subgroupClusteredMax";
-		case OPTYPE_CLUSTERED_AND:
-			return "subgroupClusteredAnd";
-		case OPTYPE_CLUSTERED_OR:
-			return "subgroupClusteredOr";
-		case OPTYPE_CLUSTERED_XOR:
-			return "subgroupClusteredXor";
-	}
-}
-
-std::string getOpTypeOperation(int opType, vk::VkFormat format, std::string lhs, std::string rhs)
-{
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_CLUSTERED_ADD:
-			return lhs + " + " + rhs;
-		case OPTYPE_CLUSTERED_MUL:
-			return lhs + " * " + rhs;
-		case OPTYPE_CLUSTERED_MIN:
-			switch (format)
-			{
-				default:
-					return "min(" + lhs + ", " + rhs + ")";
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-					return "(isnan(" + lhs + ") ? " + rhs + " : (isnan(" + rhs + ") ? " + lhs + " : min(" + lhs + ", " + rhs + ")))";
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					return "mix(mix(min(" + lhs + ", " + rhs + "), " + lhs + ", isnan(" + rhs + ")), " + rhs + ", isnan(" + lhs + "))";
-			}
-		case OPTYPE_CLUSTERED_MAX:
-			switch (format)
-			{
-				default:
-					return "max(" + lhs + ", " + rhs + ")";
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-					return "(isnan(" + lhs + ") ? " + rhs + " : (isnan(" + rhs + ") ? " + lhs + " : max(" + lhs + ", " + rhs + ")))";
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					return "mix(mix(max(" + lhs + ", " + rhs + "), " + lhs + ", isnan(" + rhs + ")), " + rhs + ", isnan(" + lhs + "))";
-			}
-		case OPTYPE_CLUSTERED_AND:
-			switch (format)
-			{
-				default:
-					return lhs + " & " + rhs;
-				case VK_FORMAT_R8_USCALED:
-					return lhs + " && " + rhs;
-				case VK_FORMAT_R8G8_USCALED:
-					return "bvec2(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y)";
-				case VK_FORMAT_R8G8B8_USCALED:
-					return "bvec3(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y, " + lhs + ".z && " + rhs + ".z)";
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					return "bvec4(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y, " + lhs + ".z && " + rhs + ".z, " + lhs + ".w && " + rhs + ".w)";
-			}
-		case OPTYPE_CLUSTERED_OR:
-			switch (format)
-			{
-				default:
-					return lhs + " | " + rhs;
-				case VK_FORMAT_R8_USCALED:
-					return lhs + " || " + rhs;
-				case VK_FORMAT_R8G8_USCALED:
-					return "bvec2(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y)";
-				case VK_FORMAT_R8G8B8_USCALED:
-					return "bvec3(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y, " + lhs + ".z || " + rhs + ".z)";
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					return "bvec4(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y, " + lhs + ".z || " + rhs + ".z, " + lhs + ".w || " + rhs + ".w)";
-			}
-		case OPTYPE_CLUSTERED_XOR:
-			switch (format)
-			{
-				default:
-					return lhs + " ^ " + rhs;
-				case VK_FORMAT_R8_USCALED:
-					return lhs + " ^^ " + rhs;
-				case VK_FORMAT_R8G8_USCALED:
-					return "bvec2(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y)";
-				case VK_FORMAT_R8G8B8_USCALED:
-					return "bvec3(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y, " + lhs + ".z ^^ " + rhs + ".z)";
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					return "bvec4(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y, " + lhs + ".z ^^ " + rhs + ".z, " + lhs + ".w ^^ " + rhs + ".w)";
-			}
-	}
-}
-
-std::string getIdentity(int opType, vk::VkFormat format)
-{
-	const bool isFloat = subgroups::isFormatFloat(format);
-	const bool isInt = subgroups::isFormatSigned(format);
-	const bool isUnsigned = subgroups::isFormatUnsigned(format);
-
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_CLUSTERED_ADD:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-		case OPTYPE_CLUSTERED_MUL:
-			return subgroups::getFormatNameForGLSL(format) + "(1)";
-		case OPTYPE_CLUSTERED_MIN:
-			if (isFloat)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0x7f800000))";
-			}
-			else if (isInt)
-			{
-				switch (format)
-				{
-					default:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffff)";
-					case VK_FORMAT_R8_SINT:
-					case VK_FORMAT_R8G8_SINT:
-					case VK_FORMAT_R8G8B8_SINT:
-					case VK_FORMAT_R8G8B8A8_SINT:
-					case VK_FORMAT_R8_UINT:
-					case VK_FORMAT_R8G8_UINT:
-					case VK_FORMAT_R8G8B8_UINT:
-					case VK_FORMAT_R8G8B8A8_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7f)";
-					case VK_FORMAT_R16_SINT:
-					case VK_FORMAT_R16G16_SINT:
-					case VK_FORMAT_R16G16B16_SINT:
-					case VK_FORMAT_R16G16B16A16_SINT:
-					case VK_FORMAT_R16_UINT:
-					case VK_FORMAT_R16G16_UINT:
-					case VK_FORMAT_R16G16B16_UINT:
-					case VK_FORMAT_R16G16B16A16_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fff)";
-			        case VK_FORMAT_R64_SINT:
-			        case VK_FORMAT_R64G64_SINT:
-			        case VK_FORMAT_R64G64B64_SINT:
-			        case VK_FORMAT_R64G64B64A64_SINT:
-			        case VK_FORMAT_R64_UINT:
-			        case VK_FORMAT_R64G64_UINT:
-			        case VK_FORMAT_R64G64B64_UINT:
-			        case VK_FORMAT_R64G64B64A64_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffffffffffffUL)";
-				}
-			}
-			else if (isUnsigned)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(-1)";
-			}
-			else
-			{
-				DE_FATAL("Unhandled case");
-				return "";
-			}
-		case OPTYPE_CLUSTERED_MAX:
-			if (isFloat)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0xff800000))";
-			}
-			else if (isInt)
-			{
-				switch (format)
-				{
-					default:
-						return subgroups::getFormatNameForGLSL(format) + "(0x80000000)";
-					case VK_FORMAT_R8_SINT:
-					case VK_FORMAT_R8G8_SINT:
-					case VK_FORMAT_R8G8B8_SINT:
-					case VK_FORMAT_R8G8B8A8_SINT:
-					case VK_FORMAT_R8_UINT:
-					case VK_FORMAT_R8G8_UINT:
-					case VK_FORMAT_R8G8B8_UINT:
-					case VK_FORMAT_R8G8B8A8_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x80)";
-					case VK_FORMAT_R16_SINT:
-					case VK_FORMAT_R16G16_SINT:
-					case VK_FORMAT_R16G16B16_SINT:
-					case VK_FORMAT_R16G16B16A16_SINT:
-					case VK_FORMAT_R16_UINT:
-					case VK_FORMAT_R16G16_UINT:
-					case VK_FORMAT_R16G16B16_UINT:
-					case VK_FORMAT_R16G16B16A16_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x8000)";
-			        case VK_FORMAT_R64_SINT:
-			        case VK_FORMAT_R64G64_SINT:
-			        case VK_FORMAT_R64G64B64_SINT:
-			        case VK_FORMAT_R64G64B64A64_SINT:
-			        case VK_FORMAT_R64_UINT:
-			        case VK_FORMAT_R64G64_UINT:
-			        case VK_FORMAT_R64G64B64_UINT:
-			        case VK_FORMAT_R64G64B64A64_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x8000000000000000UL)";
-				}
-			}
-			else if (isUnsigned)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(0)";
-			}
-			else
-			{
-				DE_FATAL("Unhandled case");
-				return "";
-			}
-		case OPTYPE_CLUSTERED_AND:
-			return subgroups::getFormatNameForGLSL(format) + "(~0)";
-		case OPTYPE_CLUSTERED_OR:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-		case OPTYPE_CLUSTERED_XOR:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-	}
-}
-
-std::string getCompare(int opType, vk::VkFormat format, std::string lhs, std::string rhs)
-{
-	std::string formatName = subgroups::getFormatNameForGLSL(format);
-	switch (format)
-	{
-		default:
-			return "all(equal(" + lhs + ", " + rhs + "))";
-		case VK_FORMAT_R8_USCALED:
-		case VK_FORMAT_R8_UINT:
-		case VK_FORMAT_R8_SINT:
-		case VK_FORMAT_R16_UINT:
-		case VK_FORMAT_R16_SINT:
-		case VK_FORMAT_R32_UINT:
-		case VK_FORMAT_R32_SINT:
-		case VK_FORMAT_R64_UINT:
-		case VK_FORMAT_R64_SINT:
-			return "(" + lhs + " == " + rhs + ")";
-		case VK_FORMAT_R16_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "(abs(" + lhs + " - " + rhs + ") < 0.1)";
-				case OPTYPE_CLUSTERED_MIN:
-				case OPTYPE_CLUSTERED_MAX:
-					return "(" + lhs + " == " + rhs + ")";
-			}
-		case VK_FORMAT_R32_SFLOAT:
-		case VK_FORMAT_R64_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "(abs(" + lhs + " - " + rhs + ") < 0.00001)";
-				case OPTYPE_CLUSTERED_MIN:
-				case OPTYPE_CLUSTERED_MAX:
-					return "(" + lhs + " == " + rhs + ")";
-			}
-		case VK_FORMAT_R16G16_SFLOAT:
-		case VK_FORMAT_R16G16B16_SFLOAT:
-		case VK_FORMAT_R16G16B16A16_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.1)))";
-				case OPTYPE_CLUSTERED_MIN:
-				case OPTYPE_CLUSTERED_MAX:
-					return "all(equal(" + lhs + ", " + rhs + "))";
-			}
-		case VK_FORMAT_R32G32_SFLOAT:
-		case VK_FORMAT_R32G32B32_SFLOAT:
-		case VK_FORMAT_R32G32B32A32_SFLOAT:
-		case VK_FORMAT_R64G64_SFLOAT:
-		case VK_FORMAT_R64G64B64_SFLOAT:
-		case VK_FORMAT_R64G64B64A64_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.00001)))";
-				case OPTYPE_CLUSTERED_MIN:
-				case OPTYPE_CLUSTERED_MAX:
-					return "all(equal(" + lhs + ", " + rhs + "))";
-			}
-	}
+	return getScanOpName("subgroupClustered", "", op, SCAN_REDUCE);
 }
 
 struct CaseDefinition
 {
-	int					opType;
+	Operator			op;
 	VkShaderStageFlags	shaderStage;
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
 {
 	return	"#extension GL_KHR_shader_subgroup_clustered: enable\n"
-			"#extension GL_KHR_shader_subgroup_ballot: enable\n"
-			+ subgroups::getAdditionalExtensionForFormat(caseDef.format);
+			"#extension GL_KHR_shader_subgroup_ballot: enable\n" +
+			subgroups::getAdditionalExtensionForFormat(caseDef.format);
 }
 
-std::string getBodySource(CaseDefinition caseDef)
+std::string getTestSrc(CaseDefinition caseDef)
 {
 	std::ostringstream bdy;
 	bdy << "  bool tempResult = true;\n"
@@ -395,21 +115,21 @@
 			<< "    if (clusterSize <= gl_SubgroupSize)\n"
 			<< "    {\n"
 			<< "      " << subgroups::getFormatNameForGLSL(caseDef.format) << " op = "
-			<< getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID], clusterSize);\n"
+			<< getOpTypeName(caseDef.op) + "(data[gl_SubgroupInvocationID], clusterSize);\n"
 			<< "      for (uint clusterOffset = 0; clusterOffset < gl_SubgroupSize; clusterOffset += clusterSize)\n"
 			<< "      {\n"
 			<< "        " << subgroups::getFormatNameForGLSL(caseDef.format) << " ref = "
-			<< getIdentity(caseDef.opType, caseDef.format) << ";\n"
+			<< getIdentity(caseDef.op, caseDef.format) << ";\n"
 			<< "        for (uint index = clusterOffset; index < (clusterOffset + clusterSize); index++)\n"
 			<< "        {\n"
 			<< "          if (subgroupBallotBitExtract(mask, index))\n"
 			<< "          {\n"
-			<< "            ref = " << getOpTypeOperation(caseDef.opType, caseDef.format, "ref", "data[index]") << ";\n"
+			<< "            ref = " << getOpOperation(caseDef.op, caseDef.format, "ref", "data[index]") << ";\n"
 			<< "          }\n"
 			<< "        }\n"
 			<< "        if ((clusterOffset <= gl_SubgroupInvocationID) && (gl_SubgroupInvocationID < (clusterOffset + clusterSize)))\n"
 			<< "        {\n"
-			<< "          if (!" << getCompare(caseDef.opType, caseDef.format, "ref", "op") << ")\n"
+			<< "          if (!" << getCompare(caseDef.op, caseDef.format, "ref", "op") << ")\n"
 			<< "          {\n"
 			<< "            tempResult = false;\n"
 			<< "          }\n"
@@ -426,15 +146,18 @@
 {
 	const vk::ShaderBuildOptions	buildOptions	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
 
-	subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, getExtHeader(caseDef), getBodySource(caseDef), "");
+	std::string extHeader	= getExtHeader(caseDef);
+	std::string testSrc		= getTestSrc(caseDef);
+
+	subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, extHeader, testSrc, "");
 }
 
 void initPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
 	const vk::ShaderBuildOptions	buildOptions	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
 
-	std::string extHeader = getExtHeader(caseDef);
-	std::string testSrc = getBodySource(caseDef);
+	std::string extHeader	= getExtHeader(caseDef);
+	std::string testSrc		= getTestSrc(caseDef);
 
 	subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, extHeader, testSrc, "");
 }
@@ -450,6 +173,27 @@
 	if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
 		TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -477,13 +221,13 @@
 	inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -506,7 +250,35 @@
 		inputData.numElements = subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log = context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -541,7 +313,7 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -575,77 +347,41 @@
 
 		for (int opTypeIndex = 0; opTypeIndex < OPTYPE_CLUSTERED_LAST; ++opTypeIndex)
 		{
-			bool isBool = false;
-			bool isFloat = false;
+			bool isBool = subgroups::isFormatBool(format);
+			bool isFloat = subgroups::isFormatFloat(format);
 
-			switch (format)
-			{
-				default:
-					break;
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					isFloat = true;
-					break;
-				case VK_FORMAT_R8_USCALED:
-				case VK_FORMAT_R8G8_USCALED:
-				case VK_FORMAT_R8G8B8_USCALED:
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					isBool = true;
-					break;
-			}
+			OpType opType = static_cast<OpType>(opTypeIndex);
+			Operator op = getOperator(opType);
 
-			bool isBitwiseOp = false;
+			bool isBitwiseOp = (op == OPERATOR_AND || op == OPERATOR_OR || op == OPERATOR_XOR);
 
-			switch (opTypeIndex)
-			{
-				default:
-					break;
-				case OPTYPE_CLUSTERED_AND:
-				case OPTYPE_CLUSTERED_OR:
-				case OPTYPE_CLUSTERED_XOR:
-					isBitwiseOp = true;
-					break;
-			}
-
+			// Skip float with bitwise category.
 			if (isFloat && isBitwiseOp)
-			{
-				// Skip float with bitwise category.
 				continue;
-			}
 
+			// Skip bool when its not the bitwise category.
 			if (isBool && !isBitwiseOp)
-			{
-				// Skip bool when its not the bitwise category.
 				continue;
-			}
 
-			const std::string name = de::toLower(getOpTypeName(opTypeIndex))
+			const std::string name = de::toLower(getOpTypeName(op))
 				+"_" + subgroups::getFormatNameForGLSL(format);
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+				CaseDefinition caseDef = {op, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
+				caseDef.requiredSubgroupSize = DE_TRUE;
+				addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
+				const CaseDefinition caseDef = {op, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(graphicGroup.get(), name,
-										"", supportedCheck, initPrograms, test, caseDef);
+											"", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+				const CaseDefinition caseDef = {op, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(framebufferGroup.get(), name +"_" + getShaderStageName(caseDef.shaderStage), "",
 							supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 			}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsPartitionedTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsPartitionedTests.cpp
index 26ae1a3..89b038a 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsPartitionedTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsPartitionedTests.cpp
@@ -25,6 +25,7 @@
  */ /*--------------------------------------------------------------------*/
 
 #include "vktSubgroupsPartitionedTests.hpp"
+#include "vktSubgroupsScanHelpers.hpp"
 #include "vktSubgroupsTestsUtils.hpp"
 
 #include <string>
@@ -63,407 +64,126 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
-									  deUint32 width, deUint32)
+static Operator getOperator(OpType t)
 {
-	const deUint32* data =
-		reinterpret_cast<const deUint32*>(datas[0]);
-	for (deUint32 x = 0; x < width; ++x)
+	switch (t)
 	{
-		deUint32 val = data[x];
-
-		if (0xFFFFFF != val)
-		{
-			return false;
-		}
+		case OPTYPE_ADD:
+		case OPTYPE_INCLUSIVE_ADD:
+		case OPTYPE_EXCLUSIVE_ADD:
+			return OPERATOR_ADD;
+		case OPTYPE_MUL:
+		case OPTYPE_INCLUSIVE_MUL:
+		case OPTYPE_EXCLUSIVE_MUL:
+			return OPERATOR_MUL;
+		case OPTYPE_MIN:
+		case OPTYPE_INCLUSIVE_MIN:
+		case OPTYPE_EXCLUSIVE_MIN:
+			return OPERATOR_MIN;
+		case OPTYPE_MAX:
+		case OPTYPE_INCLUSIVE_MAX:
+		case OPTYPE_EXCLUSIVE_MAX:
+			return OPERATOR_MAX;
+		case OPTYPE_AND:
+		case OPTYPE_INCLUSIVE_AND:
+		case OPTYPE_EXCLUSIVE_AND:
+			return OPERATOR_AND;
+		case OPTYPE_OR:
+		case OPTYPE_INCLUSIVE_OR:
+		case OPTYPE_EXCLUSIVE_OR:
+			return OPERATOR_OR;
+		case OPTYPE_XOR:
+		case OPTYPE_INCLUSIVE_XOR:
+		case OPTYPE_EXCLUSIVE_XOR:
+			return OPERATOR_XOR;
+		default:
+			DE_FATAL("Unsupported op type");
+			return OPERATOR_ADD;
 	}
-
-	return true;
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static ScanType getScanType(OpType t)
+{
+	switch (t)
+	{
+		case OPTYPE_ADD:
+		case OPTYPE_MUL:
+		case OPTYPE_MIN:
+		case OPTYPE_MAX:
+		case OPTYPE_AND:
+		case OPTYPE_OR:
+		case OPTYPE_XOR:
+			return SCAN_REDUCE;
+		case OPTYPE_INCLUSIVE_ADD:
+		case OPTYPE_INCLUSIVE_MUL:
+		case OPTYPE_INCLUSIVE_MIN:
+		case OPTYPE_INCLUSIVE_MAX:
+		case OPTYPE_INCLUSIVE_AND:
+		case OPTYPE_INCLUSIVE_OR:
+		case OPTYPE_INCLUSIVE_XOR:
+			return SCAN_INCLUSIVE;
+		case OPTYPE_EXCLUSIVE_ADD:
+		case OPTYPE_EXCLUSIVE_MUL:
+		case OPTYPE_EXCLUSIVE_MIN:
+		case OPTYPE_EXCLUSIVE_MAX:
+		case OPTYPE_EXCLUSIVE_AND:
+		case OPTYPE_EXCLUSIVE_OR:
+		case OPTYPE_EXCLUSIVE_XOR:
+			return SCAN_EXCLUSIVE;
+		default:
+			DE_FATAL("Unsupported op type");
+			return SCAN_REDUCE;
+	}
+}
+
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
+									  deUint32 width, deUint32)
+{
+	DE_UNREF(internalData);
+	return vkt::subgroups::check(datas, width, 0xFFFFFF);
+}
+
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
-	const deUint32* data =
-		reinterpret_cast<const deUint32*>(datas[0]);
-
-	for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
-	{
-		for (deUint32 nY = 0; nY < numWorkgroups[1]; ++nY)
-		{
-			for (deUint32 nZ = 0; nZ < numWorkgroups[2]; ++nZ)
-			{
-				for (deUint32 lX = 0; lX < localSize[0]; ++lX)
-				{
-					for (deUint32 lY = 0; lY < localSize[1]; ++lY)
-					{
-						for (deUint32 lZ = 0; lZ < localSize[2];
-								++lZ)
-						{
-							const deUint32 globalInvocationX =
-								nX * localSize[0] + lX;
-							const deUint32 globalInvocationY =
-								nY * localSize[1] + lY;
-							const deUint32 globalInvocationZ =
-								nZ * localSize[2] + lZ;
-
-							const deUint32 globalSizeX =
-								numWorkgroups[0] * localSize[0];
-							const deUint32 globalSizeY =
-								numWorkgroups[1] * localSize[1];
-
-							const deUint32 offset =
-								globalSizeX *
-								((globalSizeY *
-								  globalInvocationZ) +
-								 globalInvocationY) +
-								globalInvocationX;
-
-							if (0xFFFFFF != data[offset])
-							{
-								return false;
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	return true;
+	DE_UNREF(internalData);
+	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0xFFFFFF);
 }
 
-std::string getOpTypeName(int opType)
+std::string getOpTypeName(Operator op, ScanType scanType)
 {
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_ADD:
-			return "subgroupAdd";
-		case OPTYPE_MUL:
-			return "subgroupMul";
-		case OPTYPE_MIN:
-			return "subgroupMin";
-		case OPTYPE_MAX:
-			return "subgroupMax";
-		case OPTYPE_AND:
-			return "subgroupAnd";
-		case OPTYPE_OR:
-			return "subgroupOr";
-		case OPTYPE_XOR:
-			return "subgroupXor";
-		case OPTYPE_INCLUSIVE_ADD:
-			return "subgroupInclusiveAdd";
-		case OPTYPE_INCLUSIVE_MUL:
-			return "subgroupInclusiveMul";
-		case OPTYPE_INCLUSIVE_MIN:
-			return "subgroupInclusiveMin";
-		case OPTYPE_INCLUSIVE_MAX:
-			return "subgroupInclusiveMax";
-		case OPTYPE_INCLUSIVE_AND:
-			return "subgroupInclusiveAnd";
-		case OPTYPE_INCLUSIVE_OR:
-			return "subgroupInclusiveOr";
-		case OPTYPE_INCLUSIVE_XOR:
-			return "subgroupInclusiveXor";
-		case OPTYPE_EXCLUSIVE_ADD:
-			return "subgroupExclusiveAdd";
-		case OPTYPE_EXCLUSIVE_MUL:
-			return "subgroupExclusiveMul";
-		case OPTYPE_EXCLUSIVE_MIN:
-			return "subgroupExclusiveMin";
-		case OPTYPE_EXCLUSIVE_MAX:
-			return "subgroupExclusiveMax";
-		case OPTYPE_EXCLUSIVE_AND:
-			return "subgroupExclusiveAnd";
-		case OPTYPE_EXCLUSIVE_OR:
-			return "subgroupExclusiveOr";
-		case OPTYPE_EXCLUSIVE_XOR:
-			return "subgroupExclusiveXor";
-	}
+   return getScanOpName("subgroup", "", op, scanType);
 }
 
-std::string getOpTypeNamePartitioned(int opType)
+std::string getOpTypeNamePartitioned(Operator op, ScanType scanType)
 {
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_ADD:
-			return "subgroupPartitionedAddNV";
-		case OPTYPE_MUL:
-			return "subgroupPartitionedMulNV";
-		case OPTYPE_MIN:
-			return "subgroupPartitionedMinNV";
-		case OPTYPE_MAX:
-			return "subgroupPartitionedMaxNV";
-		case OPTYPE_AND:
-			return "subgroupPartitionedAndNV";
-		case OPTYPE_OR:
-			return "subgroupPartitionedOrNV";
-		case OPTYPE_XOR:
-			return "subgroupPartitionedXorNV";
-		case OPTYPE_INCLUSIVE_ADD:
-			return "subgroupPartitionedInclusiveAddNV";
-		case OPTYPE_INCLUSIVE_MUL:
-			return "subgroupPartitionedInclusiveMulNV";
-		case OPTYPE_INCLUSIVE_MIN:
-			return "subgroupPartitionedInclusiveMinNV";
-		case OPTYPE_INCLUSIVE_MAX:
-			return "subgroupPartitionedInclusiveMaxNV";
-		case OPTYPE_INCLUSIVE_AND:
-			return "subgroupPartitionedInclusiveAndNV";
-		case OPTYPE_INCLUSIVE_OR:
-			return "subgroupPartitionedInclusiveOrNV";
-		case OPTYPE_INCLUSIVE_XOR:
-			return "subgroupPartitionedInclusiveXorNV";
-		case OPTYPE_EXCLUSIVE_ADD:
-			return "subgroupPartitionedExclusiveAddNV";
-		case OPTYPE_EXCLUSIVE_MUL:
-			return "subgroupPartitionedExclusiveMulNV";
-		case OPTYPE_EXCLUSIVE_MIN:
-			return "subgroupPartitionedExclusiveMinNV";
-		case OPTYPE_EXCLUSIVE_MAX:
-			return "subgroupPartitionedExclusiveMaxNV";
-		case OPTYPE_EXCLUSIVE_AND:
-			return "subgroupPartitionedExclusiveAndNV";
-		case OPTYPE_EXCLUSIVE_OR:
-			return "subgroupPartitionedExclusiveOrNV";
-		case OPTYPE_EXCLUSIVE_XOR:
-			return "subgroupPartitionedExclusiveXorNV";
-	}
-}
-
-std::string getIdentity(int opType, vk::VkFormat format)
-{
-	const bool isFloat = subgroups::isFormatFloat(format);
-	const bool isInt = subgroups::isFormatSigned(format);
-	const bool isUnsigned = subgroups::isFormatUnsigned(format);
-
-	switch (opType)
-	{
-		default:
-			DE_FATAL("Unsupported op type");
-			return "";
-		case OPTYPE_ADD:
-		case OPTYPE_INCLUSIVE_ADD:
-		case OPTYPE_EXCLUSIVE_ADD:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-		case OPTYPE_MUL:
-		case OPTYPE_INCLUSIVE_MUL:
-		case OPTYPE_EXCLUSIVE_MUL:
-			return subgroups::getFormatNameForGLSL(format) + "(1)";
-		case OPTYPE_MIN:
-		case OPTYPE_INCLUSIVE_MIN:
-		case OPTYPE_EXCLUSIVE_MIN:
-			if (isFloat)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0x7f800000))";
-			}
-			else if (isInt)
-			{
-				switch (format)
-				{
-					default:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffff)";
-					case VK_FORMAT_R8_SINT:
-					case VK_FORMAT_R8G8_SINT:
-					case VK_FORMAT_R8G8B8_SINT:
-					case VK_FORMAT_R8G8B8A8_SINT:
-					case VK_FORMAT_R8_UINT:
-					case VK_FORMAT_R8G8_UINT:
-					case VK_FORMAT_R8G8B8_UINT:
-					case VK_FORMAT_R8G8B8A8_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7f)";
-					case VK_FORMAT_R16_SINT:
-					case VK_FORMAT_R16G16_SINT:
-					case VK_FORMAT_R16G16B16_SINT:
-					case VK_FORMAT_R16G16B16A16_SINT:
-					case VK_FORMAT_R16_UINT:
-					case VK_FORMAT_R16G16_UINT:
-					case VK_FORMAT_R16G16B16_UINT:
-					case VK_FORMAT_R16G16B16A16_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fff)";
-			        case VK_FORMAT_R64_SINT:
-			        case VK_FORMAT_R64G64_SINT:
-			        case VK_FORMAT_R64G64B64_SINT:
-			        case VK_FORMAT_R64G64B64A64_SINT:
-			        case VK_FORMAT_R64_UINT:
-			        case VK_FORMAT_R64G64_UINT:
-			        case VK_FORMAT_R64G64B64_UINT:
-			        case VK_FORMAT_R64G64B64A64_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffffffffffffUL)";
-				}
-			}
-			else if (isUnsigned)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(-1)";
-			}
-			else
-			{
-				DE_FATAL("Unhandled case");
-				return "";
-			}
-		case OPTYPE_MAX:
-		case OPTYPE_INCLUSIVE_MAX:
-		case OPTYPE_EXCLUSIVE_MAX:
-			if (isFloat)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0xff800000))";
-			}
-			else if (isInt)
-			{
-				switch (format)
-				{
-					default:
-						return subgroups::getFormatNameForGLSL(format) + "(0x80000000)";
-					case VK_FORMAT_R8_SINT:
-					case VK_FORMAT_R8G8_SINT:
-					case VK_FORMAT_R8G8B8_SINT:
-					case VK_FORMAT_R8G8B8A8_SINT:
-					case VK_FORMAT_R8_UINT:
-					case VK_FORMAT_R8G8_UINT:
-					case VK_FORMAT_R8G8B8_UINT:
-					case VK_FORMAT_R8G8B8A8_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x80)";
-					case VK_FORMAT_R16_SINT:
-					case VK_FORMAT_R16G16_SINT:
-					case VK_FORMAT_R16G16B16_SINT:
-					case VK_FORMAT_R16G16B16A16_SINT:
-					case VK_FORMAT_R16_UINT:
-					case VK_FORMAT_R16G16_UINT:
-					case VK_FORMAT_R16G16B16_UINT:
-					case VK_FORMAT_R16G16B16A16_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x8000)";
-			        case VK_FORMAT_R64_SINT:
-			        case VK_FORMAT_R64G64_SINT:
-			        case VK_FORMAT_R64G64B64_SINT:
-			        case VK_FORMAT_R64G64B64A64_SINT:
-			        case VK_FORMAT_R64_UINT:
-			        case VK_FORMAT_R64G64_UINT:
-			        case VK_FORMAT_R64G64B64_UINT:
-			        case VK_FORMAT_R64G64B64A64_UINT:
-						return subgroups::getFormatNameForGLSL(format) + "(0x8000000000000000UL)";
-				}
-			}
-			else if (isUnsigned)
-			{
-				return subgroups::getFormatNameForGLSL(format) + "(0)";
-			}
-			else
-			{
-				DE_FATAL("Unhandled case");
-				return "";
-			}
-		case OPTYPE_AND:
-		case OPTYPE_INCLUSIVE_AND:
-		case OPTYPE_EXCLUSIVE_AND:
-			return subgroups::getFormatNameForGLSL(format) + "(~0)";
-		case OPTYPE_OR:
-		case OPTYPE_INCLUSIVE_OR:
-		case OPTYPE_EXCLUSIVE_OR:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-		case OPTYPE_XOR:
-		case OPTYPE_INCLUSIVE_XOR:
-		case OPTYPE_EXCLUSIVE_XOR:
-			return subgroups::getFormatNameForGLSL(format) + "(0)";
-	}
-}
-
-std::string getCompare(int opType, vk::VkFormat format, std::string lhs, std::string rhs)
-{
-	std::string formatName = subgroups::getFormatNameForGLSL(format);
-	switch (format)
-	{
-		default:
-			return "all(equal(" + lhs + ", " + rhs + "))";
-		case VK_FORMAT_R8_USCALED:
-		case VK_FORMAT_R8_UINT:
-		case VK_FORMAT_R8_SINT:
-		case VK_FORMAT_R16_UINT:
-		case VK_FORMAT_R16_SINT:
-		case VK_FORMAT_R32_UINT:
-		case VK_FORMAT_R32_SINT:
-		case VK_FORMAT_R64_UINT:
-		case VK_FORMAT_R64_SINT:
-			return "(" + lhs + " == " + rhs + ")";
-		case VK_FORMAT_R16_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "(abs(" + lhs + " - " + rhs + ") < 0.1)";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "(" + lhs + " == " + rhs + ")";
-			}
-		case VK_FORMAT_R32_SFLOAT:
-		case VK_FORMAT_R64_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "(abs(" + lhs + " - " + rhs + ") < 0.00001)";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "(" + lhs + " == " + rhs + ")";
-			}
-		case VK_FORMAT_R16G16_SFLOAT:
-		case VK_FORMAT_R16G16B16_SFLOAT:
-		case VK_FORMAT_R16G16B16A16_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.1)))";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "all(equal(" + lhs + ", " + rhs + "))";
-			}
-		case VK_FORMAT_R32G32_SFLOAT:
-		case VK_FORMAT_R32G32B32_SFLOAT:
-		case VK_FORMAT_R32G32B32A32_SFLOAT:
-		case VK_FORMAT_R64G64_SFLOAT:
-		case VK_FORMAT_R64G64B64_SFLOAT:
-		case VK_FORMAT_R64G64B64A64_SFLOAT:
-			switch (opType)
-			{
-				default:
-					return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.00001)))";
-				case OPTYPE_MIN:
-				case OPTYPE_INCLUSIVE_MIN:
-				case OPTYPE_EXCLUSIVE_MIN:
-				case OPTYPE_MAX:
-				case OPTYPE_INCLUSIVE_MAX:
-				case OPTYPE_EXCLUSIVE_MAX:
-					return "all(equal(" + lhs + ", " + rhs + "))";
-			}
-	}
+   return getScanOpName("subgroupPartitioned", "NV", op, scanType);
 }
 
 struct CaseDefinition
 {
-	int					opType;
+	Operator			op;
+	ScanType			scanType;
 	VkShaderStageFlags	shaderStage;
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
+std::string getExtHeader(CaseDefinition caseDef)
+{
+	return	"#extension GL_NV_shader_subgroup_partitioned: enable\n"
+			"#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
+			"#extension GL_KHR_shader_subgroup_ballot: enable\n" +
+			subgroups::getAdditionalExtensionForFormat(caseDef.format);
+}
+
 string getTestString(const CaseDefinition &caseDef)
 {
+	Operator op = caseDef.op;
+	ScanType st = caseDef.scanType;
+
     // NOTE: tempResult can't have anything in bits 31:24 to avoid int->float
     // conversion overflow in framebuffer tests.
     string fmt = subgroups::getFormatNameForGLSL(caseDef.format);
@@ -475,85 +195,85 @@
     // This should generate the same result as the non-partitioned function.
     bdy +=
         "  uvec4 allBallot = mask;\n"
-        "  " + fmt + " allResult = " + getOpTypeNamePartitioned(caseDef.opType) + "(data[gl_SubgroupInvocationID], allBallot);\n"
-        "  " + fmt + " refResult = " + getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID]);\n"
-        "  if (" + getCompare(caseDef.opType, caseDef.format, "allResult", "refResult") + ") {\n"
+        "  " + fmt + " allResult = " + getOpTypeNamePartitioned(op, st) + "(data[gl_SubgroupInvocationID], allBallot);\n"
+        "  " + fmt + " refResult = " + getOpTypeName(op, st) + "(data[gl_SubgroupInvocationID]);\n"
+        "  if (" + getCompare(op, caseDef.format, "allResult", "refResult") + ") {\n"
         "      tempResult |= 0x1;\n"
         "  }\n";
 
-    // The definition of a partition doesn't forbid bits corresponding to inactive
-    // invocations being in the subset with active invocations. In other words, test that
-    // bits corresponding to inactive invocations are ignored.
-    bdy +=
-	    "  if (0 == (gl_SubgroupInvocationID % 2)) {\n"
-        "    " + fmt + " allResult = " + getOpTypeNamePartitioned(caseDef.opType) + "(data[gl_SubgroupInvocationID], allBallot);\n"
-        "    " + fmt + " refResult = " + getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID]);\n"
-        "    if (" + getCompare(caseDef.opType, caseDef.format, "allResult", "refResult") + ") {\n"
-        "        tempResult |= 0x2;\n"
-        "    }\n"
-        "  } else {\n"
-        "    tempResult |= 0x2;\n"
-        "  }\n";
+	// The definition of a partition doesn't forbid bits corresponding to inactive
+	// invocations being in the subset with active invocations. In other words, test that
+	// bits corresponding to inactive invocations are ignored.
+	bdy +=
+		"  if (0 == (gl_SubgroupInvocationID % 2)) {\n"
+		"    " + fmt + " allResult = " + getOpTypeNamePartitioned(op, st) + "(data[gl_SubgroupInvocationID], allBallot);\n"
+		"    " + fmt + " refResult = " + getOpTypeName(op, st) + "(data[gl_SubgroupInvocationID]);\n"
+		"    if (" + getCompare(op, caseDef.format, "allResult", "refResult") + ") {\n"
+		"        tempResult |= 0x2;\n"
+		"    }\n"
+		"  } else {\n"
+		"    tempResult |= 0x2;\n"
+		"  }\n";
 
-    // Test the case where the partition has each invocation in a unique subset. For
-    // exclusive ops, the result is identity. For reduce/inclusive, it's the original value.
-    string expectedSelfResult = "data[gl_SubgroupInvocationID]";
-    if (caseDef.opType >= OPTYPE_EXCLUSIVE_ADD &&
-        caseDef.opType <= OPTYPE_EXCLUSIVE_XOR) {
-        expectedSelfResult = getIdentity(caseDef.opType, caseDef.format);
-    }
+	// Test the case where the partition has each invocation in a unique subset. For
+	// exclusive ops, the result is identity. For reduce/inclusive, it's the original value.
+	string expectedSelfResult = "data[gl_SubgroupInvocationID]";
+	if (st == SCAN_EXCLUSIVE)
+		expectedSelfResult = getIdentity(op, caseDef.format);
 
-    bdy +=
-        "  uvec4 selfBallot = subgroupPartitionNV(gl_SubgroupInvocationID);\n"
-        "  " + fmt + " selfResult = " + getOpTypeNamePartitioned(caseDef.opType) + "(data[gl_SubgroupInvocationID], selfBallot);\n"
-        "  if (" + getCompare(caseDef.opType, caseDef.format, "selfResult", expectedSelfResult) + ") {\n"
-        "      tempResult |= 0x4;\n"
-        "  }\n";
+	bdy +=
+		"  uvec4 selfBallot = subgroupPartitionNV(gl_SubgroupInvocationID);\n"
+		"  " + fmt + " selfResult = " + getOpTypeNamePartitioned(op, st) + "(data[gl_SubgroupInvocationID], selfBallot);\n"
+		"  if (" + getCompare(op, caseDef.format, "selfResult", expectedSelfResult) + ") {\n"
+		"      tempResult |= 0x4;\n"
+		"  }\n";
 
-    // Test "random" partitions based on a hash of the invocation id.
-    // This "hash" function produces interesting/randomish partitions.
-    static const char *idhash = "((id%N)+(id%(N+1))-(id%2)+(id/2))%((N+1)/2)";
+	// Test "random" partitions based on a hash of the invocation id.
+	// This "hash" function produces interesting/randomish partitions.
+	static const char *idhash = "((id%N)+(id%(N+1))-(id%2)+(id/2))%((N+1)/2)";
 
-    bdy +=
+	bdy +=
 		"  for (uint N = 1; N < 16; ++N) {\n"
 		"    " + fmt + " idhashFmt = " + fmt + "(" + idhash + ");\n"
 		"    uvec4 partitionBallot = subgroupPartitionNV(idhashFmt) & mask;\n"
-		"    " + fmt + " partitionedResult = " + getOpTypeNamePartitioned(caseDef.opType) + "(data[gl_SubgroupInvocationID], partitionBallot);\n"
+		"    " + fmt + " partitionedResult = " + getOpTypeNamePartitioned(op, st) + "(data[gl_SubgroupInvocationID], partitionBallot);\n"
 		"      for (uint i = 0; i < N; ++i) {\n"
 		"        " + fmt + " iFmt = " + fmt + "(i);\n"
-        "        if (" + getCompare(caseDef.opType, caseDef.format, "idhashFmt", "iFmt") + ") {\n"
-        "          " + fmt + " subsetResult = " + getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID]);\n"
-        "          tempResult |= " + getCompare(caseDef.opType, caseDef.format, "partitionedResult", "subsetResult") + " ? (0x4 << N) : 0;\n"
-        "        }\n"
-        "      }\n"
-        "  }\n"
-        // tests in flow control:
+		"        if (" + getCompare(op, caseDef.format, "idhashFmt", "iFmt") + ") {\n"
+		"          " + fmt + " subsetResult = " + getOpTypeName(op, st) + "(data[gl_SubgroupInvocationID]);\n"
+		"          tempResult |= " + getCompare(op, caseDef.format, "partitionedResult", "subsetResult") + " ? (0x4 << N) : 0;\n"
+		"        }\n"
+		"      }\n"
+		"  }\n"
+		// tests in flow control:
 		"  if (1 == (gl_SubgroupInvocationID % 2)) {\n"
-        "    for (uint N = 1; N < 7; ++N) {\n"
+		"    for (uint N = 1; N < 7; ++N) {\n"
 		"      " + fmt + " idhashFmt = " + fmt + "(" + idhash + ");\n"
 		"      uvec4 partitionBallot = subgroupPartitionNV(idhashFmt) & mask;\n"
-        "      " + fmt + " partitionedResult = " + getOpTypeNamePartitioned(caseDef.opType) + "(data[gl_SubgroupInvocationID], partitionBallot);\n"
-        "        for (uint i = 0; i < N; ++i) {\n"
+		"      " + fmt + " partitionedResult = " + getOpTypeNamePartitioned(op, st) + "(data[gl_SubgroupInvocationID], partitionBallot);\n"
+		"        for (uint i = 0; i < N; ++i) {\n"
 		"          " + fmt + " iFmt = " + fmt + "(i);\n"
-        "          if (" + getCompare(caseDef.opType, caseDef.format, "idhashFmt", "iFmt") + ") {\n"
-        "            " + fmt + " subsetResult = " + getOpTypeName(caseDef.opType) + "(data[gl_SubgroupInvocationID]);\n"
-        "            tempResult |= " + getCompare(caseDef.opType, caseDef.format, "partitionedResult", "subsetResult") + " ? (0x20000 << N) : 0;\n"
-        "          }\n"
-        "        }\n"
-        "    }\n"
-        "  } else {\n"
-        "    tempResult |= 0xFC0000;\n"
-        "  }\n"
-        ;
+		"          if (" + getCompare(op, caseDef.format, "idhashFmt", "iFmt") + ") {\n"
+		"            " + fmt + " subsetResult = " + getOpTypeName(op, st) + "(data[gl_SubgroupInvocationID]);\n"
+		"            tempResult |= " + getCompare(op, caseDef.format, "partitionedResult", "subsetResult") + " ? (0x20000 << N) : 0;\n"
+		"          }\n"
+		"        }\n"
+		"    }\n"
+		"  } else {\n"
+		"    tempResult |= 0xFC0000;\n"
+		"  }\n"
+		;
 
-    return bdy;
+	return bdy;
 }
 
-void initFrameBufferPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
+void initFrameBufferPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
 	const vk::ShaderBuildOptions	buildOptions	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
 	std::ostringstream				bdy;
 
+	std::string extHeader	= getExtHeader(caseDef);
+
 	subgroups::setFragmentShaderFrameBuffer(programCollection);
 
 	if (VK_SHADER_STAGE_VERTEX_BIT != caseDef.shaderStage)
@@ -565,10 +285,7 @@
 	{
 		std::ostringstream vertexSrc;
 		vertexSrc << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
-			<< "#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_ballot: enable\n"
-			<< subgroups::getAdditionalExtensionForFormat(caseDef.format)
+			<< extHeader.c_str()
 			<< "layout(location = 0) in highp vec4 in_position;\n"
 			<< "layout(location = 0) out float out_color;\n"
 			<< "layout(set = 0, binding = 0) uniform Buffer1\n"
@@ -592,10 +309,7 @@
 		std::ostringstream geometry;
 
 		geometry << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
-			<< "#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_ballot: enable\n"
-			<< subgroups::getAdditionalExtensionForFormat(caseDef.format)
+			<< extHeader.c_str()
 			<< "layout(points) in;\n"
 			<< "layout(points, max_vertices = 1) out;\n"
 			<< "layout(location = 0) out float out_color;\n"
@@ -622,10 +336,7 @@
 	{
 		std::ostringstream controlSource;
 		controlSource  << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
-			<< "#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_ballot: enable\n"
-			<< subgroups::getAdditionalExtensionForFormat(caseDef.format)
+			<< extHeader.c_str()
 			<< "layout(vertices = 2) out;\n"
 			<< "layout(location = 0) out float out_color[];\n"
 			<< "layout(set = 0, binding = 0) uniform Buffer1\n"
@@ -657,10 +368,7 @@
 
 		std::ostringstream evaluationSource;
 		evaluationSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
-			<< "#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_ballot: enable\n"
-			<< subgroups::getAdditionalExtensionForFormat(caseDef.format)
+			<< extHeader.c_str()
 			<< "layout(isolines, equal_spacing, ccw ) in;\n"
 			<< "layout(location = 0) out float out_color;\n"
 			<< "layout(set = 0, binding = 0) uniform Buffer1\n"
@@ -688,17 +396,15 @@
 
 void initPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
-	const string bdy = getTestString(caseDef);
+	const string extHeader	= getExtHeader(caseDef);
+	const string bdy		= getTestString(caseDef);
 
 	if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
 	{
 		std::ostringstream src;
 
 		src << "#version 450\n"
-			<< "#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-			<< "#extension GL_KHR_shader_subgroup_ballot: enable\n"
-			<< subgroups::getAdditionalExtensionForFormat(caseDef.format)
+			<< extHeader.c_str()
 			<< "layout (local_size_x_id = 0, local_size_y_id = 1, "
 			"local_size_z_id = 2) in;\n"
 			<< "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
@@ -729,10 +435,7 @@
 		{
 			const std::string vertex =
 				"#version 450\n"
-				"#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			    "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-				"#extension GL_KHR_shader_subgroup_ballot: enable\n"
-				+ subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+				+ extHeader +
 				"layout(set = 0, binding = 0, std430) buffer Buffer1\n"
 				"{\n"
 				"  uint result[];\n"
@@ -759,10 +462,7 @@
 		{
 			const std::string tesc =
 				"#version 450\n"
-				"#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			    "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-				"#extension GL_KHR_shader_subgroup_ballot: enable\n"
-				+ subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+				+ extHeader +
 				"layout(vertices=1) out;\n"
 				"layout(set = 0, binding = 1, std430) buffer Buffer1\n"
 				"{\n"
@@ -792,10 +492,7 @@
 		{
 			const std::string tese =
 				"#version 450\n"
-				"#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			    "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-				"#extension GL_KHR_shader_subgroup_ballot: enable\n"
-				+ subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+				+ extHeader +
 				"layout(isolines) in;\n"
 				"layout(set = 0, binding = 2, std430) buffer Buffer1\n"
 				"{\n"
@@ -821,10 +518,7 @@
 		{
 			const std::string geometry =
 				"#version 450\n"
-				"#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			    "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-				"#extension GL_KHR_shader_subgroup_ballot: enable\n"
-				+ subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+				+ extHeader +
 				"layout(${TOPOLOGY}) in;\n"
 				"layout(points, max_vertices = 1) out;\n"
 				"layout(set = 0, binding = 3, std430) buffer Buffer1\n"
@@ -852,10 +546,7 @@
 		{
 			const std::string fragment =
 				"#version 450\n"
-				"#extension GL_NV_shader_subgroup_partitioned: enable\n"
-			    "#extension GL_KHR_shader_subgroup_arithmetic: enable\n"
-				"#extension GL_KHR_shader_subgroup_ballot: enable\n"
-				+ subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+				+ extHeader +
 				"layout(location = 0) out uint result;\n"
 				"layout(set = 0, binding = 4, std430) readonly buffer Buffer2\n"
 				"{\n"
@@ -880,23 +571,40 @@
 		TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
 	if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV))
-	{
 		TCU_THROW(NotSupportedError, "Device does not support subgroup partitioned operations");
-	}
 
 	if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
 		TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
 tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
 {
-	if (!subgroups::areSubgroupOperationsSupportedForStage(
-				context, caseDef.shaderStage))
+	if (!subgroups::areSubgroupOperationsSupportedForStage(context, caseDef.shaderStage))
 	{
-		if (subgroups::areSubgroupOperationsRequiredForStage(
-					caseDef.shaderStage))
+		if (subgroups::areSubgroupOperationsRequiredForStage(caseDef.shaderStage))
 		{
 			return tcu::TestStatus::fail(
 					   "Shader stage " +
@@ -916,45 +624,28 @@
 	inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
 
-bool checkShaderStages (Context& context, const CaseDefinition& caseDef)
-{
-	if (!subgroups::areSubgroupOperationsSupportedForStage(
-				context, caseDef.shaderStage))
-	{
-		if (subgroups::areSubgroupOperationsRequiredForStage(
-					caseDef.shaderStage))
-		{
-			return false;
-		}
-		else
-		{
-			TCU_THROW(NotSupportedError, "Device does not support subgroup operations for this stage");
-		}
-	}
-	return true;
-}
 
 tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
 {
 	if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
 	{
-		if(!checkShaderStages(context,caseDef))
+		if (!subgroups::areSubgroupOperationsSupportedForStage(context, caseDef.shaderStage))
 		{
 			return tcu::TestStatus::fail(
-							"Shader stage " +
-							subgroups::getShaderStageName(caseDef.shaderStage) +
-							" is required to support subgroup operations!");
+					"Shader stage " +
+					subgroups::getShaderStageName(caseDef.shaderStage) +
+					" is required to support subgroup operations!");
 		}
 		subgroups::SSBOData inputData;
 		inputData.format = caseDef.format;
@@ -962,7 +653,35 @@
 		inputData.numElements = subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log = context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -978,7 +697,7 @@
 
 		VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
 
-		if ( VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
+		if (VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
 		{
 			if ( (stages & VK_SHADER_STAGE_FRAGMENT_BIT) == 0)
 				TCU_THROW(NotSupportedError, "Device does not support vertex stage SSBO writes");
@@ -997,8 +716,7 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData,
-										 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -1032,87 +750,44 @@
 
 		for (int opTypeIndex = 0; opTypeIndex < OPTYPE_LAST; ++opTypeIndex)
 		{
-			bool isBool = false;
-			bool isFloat = false;
+			bool isBool = subgroups::isFormatBool(format);
+			bool isFloat = subgroups::isFormatFloat(format);
 
-			switch (format)
-			{
-				default:
-					break;
-				case VK_FORMAT_R16_SFLOAT:
-				case VK_FORMAT_R16G16_SFLOAT:
-				case VK_FORMAT_R16G16B16_SFLOAT:
-				case VK_FORMAT_R16G16B16A16_SFLOAT:
-				case VK_FORMAT_R32_SFLOAT:
-				case VK_FORMAT_R32G32_SFLOAT:
-				case VK_FORMAT_R32G32B32_SFLOAT:
-				case VK_FORMAT_R32G32B32A32_SFLOAT:
-				case VK_FORMAT_R64_SFLOAT:
-				case VK_FORMAT_R64G64_SFLOAT:
-				case VK_FORMAT_R64G64B64_SFLOAT:
-				case VK_FORMAT_R64G64B64A64_SFLOAT:
-					isFloat = true;
-					break;
-				case VK_FORMAT_R8_USCALED:
-				case VK_FORMAT_R8G8_USCALED:
-				case VK_FORMAT_R8G8B8_USCALED:
-				case VK_FORMAT_R8G8B8A8_USCALED:
-					isBool = true;
-					break;
-			}
+			OpType opType = static_cast<OpType>(opTypeIndex);
+			Operator op = getOperator(opType);
+			ScanType st = getScanType(opType);
 
-			bool isBitwiseOp = false;
+			bool isBitwiseOp = (op == OPERATOR_AND || op == OPERATOR_OR || op == OPERATOR_XOR);
 
-			switch (opTypeIndex)
-			{
-				default:
-					break;
-				case OPTYPE_AND:
-				case OPTYPE_INCLUSIVE_AND:
-				case OPTYPE_EXCLUSIVE_AND:
-				case OPTYPE_OR:
-				case OPTYPE_INCLUSIVE_OR:
-				case OPTYPE_EXCLUSIVE_OR:
-				case OPTYPE_XOR:
-				case OPTYPE_INCLUSIVE_XOR:
-				case OPTYPE_EXCLUSIVE_XOR:
-					isBitwiseOp = true;
-					break;
-			}
-
+			// Skip float with bitwise category.
 			if (isFloat && isBitwiseOp)
-			{
-				// Skip float with bitwise category.
 				continue;
-			}
 
+			// Skip bool when its not the bitwise category.
 			if (isBool && !isBitwiseOp)
-			{
-				// Skip bool when its not the bitwise category.
 				continue;
-			}
-			std::string op = getOpTypeName(opTypeIndex);
+
+			const std::string name = de::toLower(getOpTypeName(op, st)) + "_" + subgroups::getFormatNameForGLSL(format);
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
-				addFunctionCaseWithPrograms(computeGroup.get(),
-											de::toLower(op) + "_" +
-											subgroups::getFormatNameForGLSL(format),
+				CaseDefinition caseDef = {op, st, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				addFunctionCaseWithPrograms(computeGroup.get(), name,
+											"", supportedCheck, initPrograms, test, caseDef);
+				caseDef.requiredSubgroupSize = DE_TRUE;
+				addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize",
 											"", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
-				addFunctionCaseWithPrograms(graphicGroup.get(),
-											de::toLower(op) + "_" +
-											subgroups::getFormatNameForGLSL(format),
+				const CaseDefinition caseDef = {op, st, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				addFunctionCaseWithPrograms(graphicGroup.get(), name,
 											"", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
-				addFunctionCaseWithPrograms(framebufferGroup.get(), de::toLower(op) + "_" + subgroups::getFormatNameForGLSL(format) +
+				const CaseDefinition caseDef = {op, st, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
+				addFunctionCaseWithPrograms(framebufferGroup.get(), name +
 											"_" + getShaderStageName(caseDef.shaderStage), "",
 											supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 			}
@@ -1128,7 +803,5 @@
 
 	return group.release();
 }
-
 } // subgroups
 } // vkt
-
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsQuadTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsQuadTests.cpp
index e9e1db0..0f1d443 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsQuadTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsQuadTests.cpp
@@ -46,16 +46,18 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -104,6 +106,7 @@
 	VkShaderStageFlags	shaderStage;
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 std::string getExtHeader(VkFormat format)
@@ -215,6 +218,27 @@
 	if ((caseDef.opType == OPTYPE_QUAD_BROADCAST_NONCONST) && !subgroups::isSubgroupBroadcastDynamicIdSupported(context))
 		TCU_THROW(NotSupportedError, "Device does not support SubgroupBroadcastDynamicId");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -242,13 +266,13 @@
 	inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -271,7 +295,35 @@
 		inputData.numElements = subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log = context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -306,7 +358,7 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -346,8 +398,10 @@
 			name << "_" << subgroups::getFormatNameForGLSL(format);
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(computeGroup.get(), name.str(), "", supportedCheck, initPrograms, test, caseDef);
+				caseDef.requiredSubgroupSize = DE_TRUE;
+				addFunctionCaseWithPrograms(computeGroup.get(), name.str() + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			{
@@ -356,13 +410,14 @@
 					opTypeIndex,
 					VK_SHADER_STAGE_ALL_GRAPHICS,
 					format,
-					de::SharedPtr<bool>(new bool)
+					de::SharedPtr<bool>(new bool),
+					DE_FALSE
 				};
 				addFunctionCaseWithPrograms(graphicGroup.get(), name.str(), "", supportedCheck, initPrograms, test, caseDef);
 			}
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(framebufferGroup.get(), name.str()+"_"+ getShaderStageName(caseDef.shaderStage), "",
 											supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 			}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.cpp
new file mode 100644
index 0000000..8e3ead2
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.cpp
@@ -0,0 +1,325 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Google Inc.
+ * Copyright (c) 2017 Codeplay Software Ltd.
+ *
+ * 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 Subgroups Tests
+ */ /*--------------------------------------------------------------------*/
+
+#include "vktSubgroupsScanHelpers.hpp"
+#include "vktSubgroupsTestsUtils.hpp"
+
+#include <string>
+#include <vector>
+
+using namespace tcu;
+using namespace std;
+using namespace vk;
+using namespace vkt;
+
+string getScanOpName(string prefix, string suffix, Operator op, ScanType scanType)
+{
+	string n;
+	switch (scanType)
+	{
+		case SCAN_REDUCE:		n = "";				break;
+		case SCAN_INCLUSIVE:	n = "Inclusive";	break;
+		case SCAN_EXCLUSIVE:	n = "Exclusive";	break;
+	}
+	switch (op)
+	{
+		case OPERATOR_ADD:	n += "Add";	break;
+		case OPERATOR_MUL:	n += "Mul";	break;
+		case OPERATOR_MIN:	n += "Min";	break;
+		case OPERATOR_MAX:	n += "Max";	break;
+		case OPERATOR_AND:	n += "And";	break;
+		case OPERATOR_OR:	n += "Or";	break;
+		case OPERATOR_XOR:	n += "Xor";	break;
+	}
+	return prefix + n + suffix;
+}
+
+string getOpOperation(Operator op, VkFormat format, string lhs, string rhs)
+{
+	switch (op)
+	{
+		default:
+			DE_FATAL("Unsupported op type");
+			return "";
+		case OPERATOR_ADD:
+			return lhs + " + " + rhs;
+		case OPERATOR_MUL:
+			return lhs + " * " + rhs;
+		case OPERATOR_MIN:
+			switch (format)
+			{
+				default:
+					return "min(" + lhs + ", " + rhs + ")";
+				case VK_FORMAT_R16_SFLOAT:
+				case VK_FORMAT_R32_SFLOAT:
+				case VK_FORMAT_R64_SFLOAT:
+					return "(isnan(" + lhs + ") ? " + rhs + " : (isnan(" + rhs + ") ? " + lhs + " : min(" + lhs + ", " + rhs + ")))";
+				case VK_FORMAT_R16G16_SFLOAT:
+				case VK_FORMAT_R16G16B16_SFLOAT:
+				case VK_FORMAT_R16G16B16A16_SFLOAT:
+				case VK_FORMAT_R32G32_SFLOAT:
+				case VK_FORMAT_R32G32B32_SFLOAT:
+				case VK_FORMAT_R32G32B32A32_SFLOAT:
+				case VK_FORMAT_R64G64_SFLOAT:
+				case VK_FORMAT_R64G64B64_SFLOAT:
+				case VK_FORMAT_R64G64B64A64_SFLOAT:
+					return "mix(mix(min(" + lhs + ", " + rhs + "), " + lhs + ", isnan(" + rhs + ")), " + rhs + ", isnan(" + lhs + "))";
+			}
+		case OPERATOR_MAX:
+			switch (format)
+			{
+				default:
+					return "max(" + lhs + ", " + rhs + ")";
+				case VK_FORMAT_R16_SFLOAT:
+				case VK_FORMAT_R32_SFLOAT:
+				case VK_FORMAT_R64_SFLOAT:
+					return "(isnan(" + lhs + ") ? " + rhs + " : (isnan(" + rhs + ") ? " + lhs + " : max(" + lhs + ", " + rhs + ")))";
+				case VK_FORMAT_R16G16_SFLOAT:
+				case VK_FORMAT_R16G16B16_SFLOAT:
+				case VK_FORMAT_R16G16B16A16_SFLOAT:
+				case VK_FORMAT_R32G32_SFLOAT:
+				case VK_FORMAT_R32G32B32_SFLOAT:
+				case VK_FORMAT_R32G32B32A32_SFLOAT:
+				case VK_FORMAT_R64G64_SFLOAT:
+				case VK_FORMAT_R64G64B64_SFLOAT:
+				case VK_FORMAT_R64G64B64A64_SFLOAT:
+					return "mix(mix(max(" + lhs + ", " + rhs + "), " + lhs + ", isnan(" + rhs + ")), " + rhs + ", isnan(" + lhs + "))";
+			}
+		case OPERATOR_AND:
+			switch (format)
+			{
+				default:
+					return lhs + " & " + rhs;
+				case VK_FORMAT_R8_USCALED:
+					return lhs + " && " + rhs;
+				case VK_FORMAT_R8G8_USCALED:
+					return "bvec2(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y)";
+				case VK_FORMAT_R8G8B8_USCALED:
+					return "bvec3(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y, " + lhs + ".z && " + rhs + ".z)";
+				case VK_FORMAT_R8G8B8A8_USCALED:
+					return "bvec4(" + lhs + ".x && " + rhs + ".x, " + lhs + ".y && " + rhs + ".y, " + lhs + ".z && " + rhs + ".z, " + lhs + ".w && " + rhs + ".w)";
+			}
+		case OPERATOR_OR:
+			switch (format)
+			{
+				default:
+					return lhs + " | " + rhs;
+				case VK_FORMAT_R8_USCALED:
+					return lhs + " || " + rhs;
+				case VK_FORMAT_R8G8_USCALED:
+					return "bvec2(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y)";
+				case VK_FORMAT_R8G8B8_USCALED:
+					return "bvec3(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y, " + lhs + ".z || " + rhs + ".z)";
+				case VK_FORMAT_R8G8B8A8_USCALED:
+					return "bvec4(" + lhs + ".x || " + rhs + ".x, " + lhs + ".y || " + rhs + ".y, " + lhs + ".z || " + rhs + ".z, " + lhs + ".w || " + rhs + ".w)";
+			}
+		case OPERATOR_XOR:
+			switch (format)
+			{
+				default:
+					return lhs + " ^ " + rhs;
+				case VK_FORMAT_R8_USCALED:
+					return lhs + " ^^ " + rhs;
+				case VK_FORMAT_R8G8_USCALED:
+					return "bvec2(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y)";
+				case VK_FORMAT_R8G8B8_USCALED:
+					return "bvec3(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y, " + lhs + ".z ^^ " + rhs + ".z)";
+				case VK_FORMAT_R8G8B8A8_USCALED:
+					return "bvec4(" + lhs + ".x ^^ " + rhs + ".x, " + lhs + ".y ^^ " + rhs + ".y, " + lhs + ".z ^^ " + rhs + ".z, " + lhs + ".w ^^ " + rhs + ".w)";
+			}
+	}
+}
+
+string getIdentity(Operator op, VkFormat format)
+{
+	const bool isFloat = subgroups::isFormatFloat(format);
+	const bool isInt = subgroups::isFormatSigned(format);
+	const bool isUnsigned = subgroups::isFormatUnsigned(format);
+
+	switch (op)
+	{
+		default:
+			DE_FATAL("Unsupported op type");
+			return "";
+		case OPERATOR_ADD:
+			return subgroups::getFormatNameForGLSL(format) + "(0)";
+		case OPERATOR_MUL:
+			return subgroups::getFormatNameForGLSL(format) + "(1)";
+		case OPERATOR_MIN:
+			if (isFloat)
+			{
+				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0x7f800000))";
+			}
+			else if (isInt)
+			{
+				switch (format)
+				{
+					default:
+						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffff)";
+					case VK_FORMAT_R8_SINT:
+					case VK_FORMAT_R8G8_SINT:
+					case VK_FORMAT_R8G8B8_SINT:
+					case VK_FORMAT_R8G8B8A8_SINT:
+					case VK_FORMAT_R8_UINT:
+					case VK_FORMAT_R8G8_UINT:
+					case VK_FORMAT_R8G8B8_UINT:
+					case VK_FORMAT_R8G8B8A8_UINT:
+						return subgroups::getFormatNameForGLSL(format) + "(0x7f)";
+					case VK_FORMAT_R16_SINT:
+					case VK_FORMAT_R16G16_SINT:
+					case VK_FORMAT_R16G16B16_SINT:
+					case VK_FORMAT_R16G16B16A16_SINT:
+					case VK_FORMAT_R16_UINT:
+					case VK_FORMAT_R16G16_UINT:
+					case VK_FORMAT_R16G16B16_UINT:
+					case VK_FORMAT_R16G16B16A16_UINT:
+						return subgroups::getFormatNameForGLSL(format) + "(0x7fff)";
+					case VK_FORMAT_R64_SINT:
+					case VK_FORMAT_R64G64_SINT:
+					case VK_FORMAT_R64G64B64_SINT:
+					case VK_FORMAT_R64G64B64A64_SINT:
+					case VK_FORMAT_R64_UINT:
+					case VK_FORMAT_R64G64_UINT:
+					case VK_FORMAT_R64G64B64_UINT:
+					case VK_FORMAT_R64G64B64A64_UINT:
+						return subgroups::getFormatNameForGLSL(format) + "(0x7fffffffffffffffUL)";
+				}
+			}
+			else if (isUnsigned)
+			{
+				return subgroups::getFormatNameForGLSL(format) + "(-1)";
+			}
+			else
+			{
+				DE_FATAL("Unhandled case");
+				return "";
+			}
+		case OPERATOR_MAX:
+			if (isFloat)
+			{
+				return subgroups::getFormatNameForGLSL(format) + "(intBitsToFloat(0xff800000))";
+			}
+			else if (isInt)
+			{
+				switch (format)
+				{
+					default:
+						return subgroups::getFormatNameForGLSL(format) + "(0x80000000)";
+					case VK_FORMAT_R8_SINT:
+					case VK_FORMAT_R8G8_SINT:
+					case VK_FORMAT_R8G8B8_SINT:
+					case VK_FORMAT_R8G8B8A8_SINT:
+					case VK_FORMAT_R8_UINT:
+					case VK_FORMAT_R8G8_UINT:
+					case VK_FORMAT_R8G8B8_UINT:
+					case VK_FORMAT_R8G8B8A8_UINT:
+						return subgroups::getFormatNameForGLSL(format) + "(0x80)";
+					case VK_FORMAT_R16_SINT:
+					case VK_FORMAT_R16G16_SINT:
+					case VK_FORMAT_R16G16B16_SINT:
+					case VK_FORMAT_R16G16B16A16_SINT:
+					case VK_FORMAT_R16_UINT:
+					case VK_FORMAT_R16G16_UINT:
+					case VK_FORMAT_R16G16B16_UINT:
+					case VK_FORMAT_R16G16B16A16_UINT:
+						return subgroups::getFormatNameForGLSL(format) + "(0x8000)";
+					case VK_FORMAT_R64_SINT:
+					case VK_FORMAT_R64G64_SINT:
+					case VK_FORMAT_R64G64B64_SINT:
+					case VK_FORMAT_R64G64B64A64_SINT:
+					case VK_FORMAT_R64_UINT:
+					case VK_FORMAT_R64G64_UINT:
+					case VK_FORMAT_R64G64B64_UINT:
+					case VK_FORMAT_R64G64B64A64_UINT:
+						return subgroups::getFormatNameForGLSL(format) + "(0x8000000000000000UL)";
+				}
+			}
+			else if (isUnsigned)
+			{
+				return subgroups::getFormatNameForGLSL(format) + "(0)";
+			}
+			else
+			{
+				DE_FATAL("Unhandled case");
+				return "";
+			}
+		case OPERATOR_AND:
+			return subgroups::getFormatNameForGLSL(format) + "(~0)";
+		case OPERATOR_OR:
+			return subgroups::getFormatNameForGLSL(format) + "(0)";
+		case OPERATOR_XOR:
+			return subgroups::getFormatNameForGLSL(format) + "(0)";
+	}
+}
+
+string getCompare(Operator op, VkFormat format, string lhs, string rhs)
+{
+	string formatName = subgroups::getFormatNameForGLSL(format);
+	bool isMinMax = (op == OPERATOR_MIN || op == OPERATOR_MAX);
+
+	switch (format)
+	{
+		default:
+			return "all(equal(" + lhs + ", " + rhs + "))";
+		case VK_FORMAT_R8_USCALED:
+		case VK_FORMAT_R8_UINT:
+		case VK_FORMAT_R8_SINT:
+		case VK_FORMAT_R16_UINT:
+		case VK_FORMAT_R16_SINT:
+		case VK_FORMAT_R32_UINT:
+		case VK_FORMAT_R32_SINT:
+		case VK_FORMAT_R64_UINT:
+		case VK_FORMAT_R64_SINT:
+			return "(" + lhs + " == " + rhs + ")";
+		case VK_FORMAT_R16_SFLOAT:
+			if (isMinMax)
+				return "(" + lhs + " == " + rhs + ")";
+			else
+				return "(abs(" + lhs + " - " + rhs + ") < " + formatName + "(0.1))";
+		case VK_FORMAT_R32_SFLOAT:
+		case VK_FORMAT_R64_SFLOAT:
+			if (isMinMax)
+				return "(" + lhs + " == " + rhs + ")";
+			else
+				return "(abs(" + lhs + " - " + rhs + ") < 0.00001)";
+		case VK_FORMAT_R16G16_SFLOAT:
+		case VK_FORMAT_R16G16B16_SFLOAT:
+		case VK_FORMAT_R16G16B16A16_SFLOAT:
+			if (isMinMax)
+				return "all(equal(" + lhs + ", " + rhs + "))";
+			else
+				return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.1)))";
+		case VK_FORMAT_R32G32_SFLOAT:
+		case VK_FORMAT_R32G32B32_SFLOAT:
+		case VK_FORMAT_R32G32B32A32_SFLOAT:
+		case VK_FORMAT_R64G64_SFLOAT:
+		case VK_FORMAT_R64G64B64_SFLOAT:
+		case VK_FORMAT_R64G64B64A64_SFLOAT:
+			if (isMinMax)
+				return "all(equal(" + lhs + ", " + rhs + "))";
+			else
+				return "all(lessThan(abs(" + lhs + " - " + rhs + "), " + formatName + "(0.00001)))";
+	}
+}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.hpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.hpp
new file mode 100644
index 0000000..e446852
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsScanHelpers.hpp
@@ -0,0 +1,56 @@
+#ifndef _VKTSUBGROUPSSCANHELPERS_HPP
+#define _VKTSUBGROUPSSCANHELPERS_HPP
+
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Google Inc.
+ * Copyright (c) 2017 Codeplay Software Ltd.
+ *
+ * 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 Subgroups Tests
+ */ /*--------------------------------------------------------------------*/
+
+#include "vktSubgroupsTestsUtils.hpp"
+
+#include <string>
+
+enum Operator
+{
+	OPERATOR_ADD,
+	OPERATOR_MUL,
+	OPERATOR_MIN,
+	OPERATOR_MAX,
+	OPERATOR_AND,
+	OPERATOR_OR,
+	OPERATOR_XOR,
+};
+
+enum ScanType
+{
+	SCAN_REDUCE,
+	SCAN_INCLUSIVE,
+	SCAN_EXCLUSIVE
+};
+
+std::string getScanOpName(std::string prefix, std::string suffix, Operator op, ScanType scanType);
+std::string getOpOperation(Operator op, vk::VkFormat format, std::string lhs, std::string rhs);
+std::string getIdentity(Operator op, vk::VkFormat format);
+std::string getCompare(Operator op, vk::VkFormat format, std::string lhs, std::string rhs);
+
+#endif // _VKTSUBGROUPSSCANHELPERS_HPP
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShapeTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShapeTests.cpp
index 66e4569..d2a5ad0 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShapeTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShapeTests.cpp
@@ -36,16 +36,18 @@
 
 namespace
 {
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -75,6 +77,7 @@
 	int					opType;
 	VkShaderStageFlags	shaderStage;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 void initFrameBufferPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
@@ -467,6 +470,27 @@
 		}
 	}
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -490,13 +514,13 @@
 	}
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -521,7 +545,36 @@
 					   subgroups::getShaderStageName(caseDef.shaderStage) +
 					   " is required to support subgroup operations!");
 		}
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkCompute);
+
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute);
+
+		tcu::TestLog& log = context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -548,7 +601,7 @@
 		if ((VkShaderStageFlagBits)0u == stages)
 			TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -579,8 +632,10 @@
 		const std::string op = de::toLower(getOpTypeName(opTypeIndex));
 
 		{
-			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+			CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(computeGroup.get(), op, "", supportedCheck, initPrograms, test, caseDef);
+			caseDef.requiredSubgroupSize = DE_TRUE;
+			addFunctionCaseWithPrograms(computeGroup.get(), op + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 		}
 
 		{
@@ -588,7 +643,8 @@
 			{
 				opTypeIndex,
 				VK_SHADER_STAGE_ALL_GRAPHICS,
-				de::SharedPtr<bool>(new bool)
+				de::SharedPtr<bool>(new bool),
+				DE_FALSE
 			};
 			addFunctionCaseWithPrograms(graphicGroup.get(),
 									op, "",
@@ -597,7 +653,7 @@
 
 		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 		{
-			const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
 			addFunctionCaseWithPrograms(framebufferGroup.get(),op + "_" + getShaderStageName(caseDef.shaderStage), "",
 										supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 		}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShuffleTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShuffleTests.cpp
index eef837f..53176ed 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShuffleTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShuffleTests.cpp
@@ -45,16 +45,18 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -82,6 +84,7 @@
 	VkShaderStageFlags	shaderStage;
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 const std::string to_string(int x) {
@@ -463,6 +466,27 @@
 	if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
 		TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -497,13 +521,13 @@
 	inputData[1].initializeType = subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -531,7 +555,35 @@
 		inputData[1].numElements = inputData[0].numElements;
 		inputData[1].initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkCompute);
+
+		tcu::TestLog& log = context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+
+		return tcu::TestStatus::pass("OK");
 	}
 
 	else
@@ -574,7 +626,7 @@
 		inputData[1].binding		= 5u;
 		inputData[1].stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -620,19 +672,22 @@
 					opTypeIndex,
 					VK_SHADER_STAGE_ALL_GRAPHICS,
 					format,
-					de::SharedPtr<bool>(new bool)
+					de::SharedPtr<bool>(new bool),
+					DE_FALSE
 				};
 				addFunctionCaseWithPrograms(graphicGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
+				caseDef.requiredSubgroupSize = DE_TRUE;
+				addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
 			}
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				addFunctionCaseWithPrograms(framebufferGroup.get(), name + "_" + getShaderStageName(caseDef.shaderStage), "",
 											supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 			}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp
new file mode 100755
index 0000000..29b799d
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp
@@ -0,0 +1,1083 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file
+ * \brief VK_EXT_subgroup_size_control Tests
+ */ /*--------------------------------------------------------------------*/
+
+#include "vktSubgroupsSizeControlTests.hpp"
+#include "vktSubgroupsTestsUtils.hpp"
+#include "vktTestCaseUtil.hpp"
+#include "tcuTestLog.hpp"
+
+#include <string>
+#include <vector>
+
+using namespace tcu;
+using namespace std;
+using namespace vk;
+using namespace vkt;
+
+namespace
+{
+
+enum RequiredSubgroupSizeMode
+{
+	REQUIRED_SUBGROUP_SIZE_NONE	= 0,
+	REQUIRED_SUBGROUP_SIZE_MIN	= 1,
+	REQUIRED_SUBGROUP_SIZE_MAX	= 2,
+};
+
+struct CaseDefinition
+{
+	deUint32							pipelineShaderStageCreateFlags;
+	VkShaderStageFlags					shaderStage;
+	deBool								requiresBallot;
+	deUint32							requiredSubgroupSizeMode;
+};
+
+struct internalDataStruct
+{
+	const Context*			context;
+	struct CaseDefinition	caseDef;
+	deUint32				requiredSubgroupSize;
+};
+
+// Find greatest common divisor for a and b
+deUint32 gcd (deUint32 a, deUint32 b)
+{
+	if ((0 != a) && (0 == b))
+	{
+		return a;
+	}
+	else
+	{
+		deUint32 greater = std::max(a, b);
+		deUint32 lesser  = std::min(a, b);
+
+		return gcd(lesser, greater % lesser);
+	}
+}
+
+void getLocalSizes (VkPhysicalDeviceProperties physicalDeviceProperties, deUint32 numWorkGroupInvocations,
+				   deUint32& localSizeX, deUint32& localSizeY, deUint32& localSizeZ)
+{
+	DE_ASSERT(numWorkGroupInvocations <= physicalDeviceProperties.limits.maxComputeWorkGroupInvocations);
+	localSizeX = gcd(numWorkGroupInvocations, physicalDeviceProperties.limits.maxComputeWorkGroupSize[0]);
+	localSizeY = gcd(deMax32(numWorkGroupInvocations / localSizeX, 1u), physicalDeviceProperties.limits.maxComputeWorkGroupSize[1]);
+	localSizeZ = deMax32(numWorkGroupInvocations / (localSizeX * localSizeY), 1u);
+}
+
+deUint32 getRequiredSubgroupSizeFromMode (Context &context, const CaseDefinition caseDef,
+										  VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties)
+{
+	switch (caseDef.requiredSubgroupSizeMode)
+	{
+	case REQUIRED_SUBGROUP_SIZE_MAX:	return subgroupSizeControlProperties.maxSubgroupSize;
+	case REQUIRED_SUBGROUP_SIZE_MIN:	return subgroupSizeControlProperties.minSubgroupSize;
+	case REQUIRED_SUBGROUP_SIZE_NONE:	return vkt::subgroups::getSubgroupSize(context);
+	default:							TCU_THROW(NotSupportedError, "Unsupported Subgroup size");
+	}
+}
+
+static bool checkVertexPipelineStages (const void* internalData, std::vector<const void*> datas,
+									   deUint32 width, deUint32)
+{
+	const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+	const Context *context = checkInternalData->context;
+	tcu::TestLog& log		= context->getTestContext().getLog();
+
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupSizeControlProperties;
+
+	context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
+
+	for (deUint32 i = 0; i < width; i++)
+	{
+		if (data[i] > subgroupSizeControlProperties.maxSubgroupSize ||
+			data[i] < subgroupSizeControlProperties.minSubgroupSize)
+		{
+			log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[i] << ") value is outside limits (" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << ")" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+
+		if (checkInternalData->caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE && data[i] != checkInternalData->requiredSubgroupSize)
+		{
+			log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[i] << ") is not equal to the required subgroup size value (" << checkInternalData->requiredSubgroupSize << ")" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+	}
+
+	return DE_TRUE;
+}
+
+static bool checkFragmentPipelineStages (const void* internalData, std::vector<const void*> datas,
+										 deUint32 width, deUint32 height, deUint32)
+{
+	const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+	const Context *context = checkInternalData->context;
+	tcu::TestLog& log		= context->getTestContext().getLog();
+
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupSizeControlProperties;
+	context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+
+	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
+
+	for (deUint32 x = 0u; x < width; ++x)
+	{
+		for (deUint32 y = 0u; y < height; ++y)
+		{
+			const deUint32 ndx = (x * height + y);
+
+			if (data[ndx] > subgroupSizeControlProperties.maxSubgroupSize ||
+				data[ndx] < subgroupSizeControlProperties.minSubgroupSize)
+			{
+				log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[ndx] << ") value is outside limits (" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << ")" << tcu::TestLog::EndMessage;
+				return DE_FALSE;
+			}
+
+			if (checkInternalData->caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE &&
+				data[ndx] != checkInternalData->requiredSubgroupSize)
+			{
+				log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[ndx] << ") is not equal to the required subgroup size value (" << checkInternalData->requiredSubgroupSize << ")" << tcu::TestLog::EndMessage;
+				return DE_FALSE;
+			}
+		}
+	}
+	return true;
+}
+
+static bool checkCompute (const void* internalData, std::vector<const void*> datas,
+						  const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+						  deUint32)
+{
+	const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+	const Context *context = checkInternalData->context;
+	tcu::TestLog& log		= context->getTestContext().getLog();
+
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupSizeControlProperties;
+	context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+
+	const deUint32 globalSizeX = numWorkgroups[0] * localSize[0];
+	const deUint32 globalSizeY = numWorkgroups[1] * localSize[1];
+	const deUint32 globalSizeZ = numWorkgroups[2] * localSize[2];
+	const deUint32 width = globalSizeX * globalSizeY * globalSizeZ;
+	const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
+
+	for (deUint32 i = 0; i < width; i++)
+	{
+		if (data[i] > subgroupSizeControlProperties.maxSubgroupSize ||
+			data[i] < subgroupSizeControlProperties.minSubgroupSize)
+		{
+			log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+				<< "gl_SubgroupSize (" << data[i] << ") value is outside limits (" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << ")" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+
+		if (checkInternalData->caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE &&
+			data[i] != checkInternalData->requiredSubgroupSize)
+		{
+			log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+				<< "gl_SubgroupSize (" << data[i] << ") is not equal to the required subgroup size value (" << checkInternalData->requiredSubgroupSize << ")" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+	}
+
+	return DE_TRUE;
+}
+
+static bool checkComputeRequireFull (const void* internalData, std::vector<const void*> datas,
+									 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+									 deUint32)
+{
+	const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+	const Context *context = checkInternalData->context;
+	tcu::TestLog& log		= context->getTestContext().getLog();
+
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+
+	VkPhysicalDeviceSubgroupProperties subgroupProperties;
+	subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+	subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupProperties;
+
+	context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+
+	const deUint32 globalSizeX = numWorkgroups[0] * localSize[0];
+	const deUint32 globalSizeY = numWorkgroups[1] * localSize[1];
+	const deUint32 globalSizeZ = numWorkgroups[2] * localSize[2];
+	const deUint32 width = globalSizeX * globalSizeY * globalSizeZ;
+	const UVec4* data = reinterpret_cast<const UVec4*>(datas[0]);
+
+	deUint32 numSubgroups = (localSize[0] * localSize[1] * localSize[2]) / checkInternalData->requiredSubgroupSize;
+
+	for (deUint32 i = 0; i < width; i++)
+	{
+		if (data[i].x() > subgroupSizeControlProperties.maxSubgroupSize ||
+			data[i].x() < subgroupSizeControlProperties.minSubgroupSize)
+		{
+			log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+				<< "gl_SubgroupSize value ( " << data[i].x() << ") is outside limits [" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+
+		if (data[i].x() != data[i].y())
+		{
+			log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+				<< "gl_SubgroupSize ( " << data[i].x() << ") does not match the active number of subgroup invocations (" << data[i].y() << ")" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+
+		if (checkInternalData->caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT &&
+			data[i].x() != checkInternalData->requiredSubgroupSize)
+		{
+			log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+				<< "expected subgroupSize (" << checkInternalData->requiredSubgroupSize << ") doesn't match gl_SubgroupSize ( " << data[i].x() << ")" << tcu::TestLog::EndMessage;
+			return DE_FALSE;
+		}
+
+		if (checkInternalData->caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT && data[i].z() != numSubgroups)
+		{
+			log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+				<< "expected number of subgroups dispatched (" << numSubgroups << ") doesn't match gl_NumSubgroups (" << data[i].z() << ")";
+			return DE_FALSE;
+		}
+	}
+
+	return DE_TRUE;
+}
+
+void initFrameBufferPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
+{
+	const vk::ShaderBuildOptions	buildOptions	(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+
+	if (VK_SHADER_STAGE_FRAGMENT_BIT != caseDef.shaderStage)
+		subgroups::setFragmentShaderFrameBuffer(programCollection);
+
+	if (VK_SHADER_STAGE_VERTEX_BIT != caseDef.shaderStage && VK_SHADER_STAGE_FRAGMENT_BIT != caseDef.shaderStage)
+		subgroups::setVertexShaderFrameBuffer(programCollection);
+
+	std::string bdyStr = "uint tempResult = gl_SubgroupSize;\n";
+
+	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
+	{
+		std::ostringstream				vertex;
+		vertex << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+			<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+			<< "layout(location = 0) in highp vec4 in_position;\n"
+			<< "layout(location = 0) out float out_color;\n"
+			<< "\n"
+			<< "void main (void)\n"
+			<< "{\n"
+			<< bdyStr
+			<< "  out_color = float(tempResult);\n"
+			<< "  gl_Position = in_position;\n"
+			<< "  gl_PointSize = 1.0f;\n"
+			<< "}\n";
+		programCollection.glslSources.add("vert")
+			<< glu::VertexSource(vertex.str()) << buildOptions;
+	}
+	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+	{
+		std::ostringstream geometry;
+
+		geometry << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+			<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+			<< "layout(points) in;\n"
+			<< "layout(points, max_vertices = 1) out;\n"
+			<< "layout(location = 0) out float out_color;\n"
+			<< "void main (void)\n"
+			<< "{\n"
+			<< bdyStr
+			<< "  out_color = float(tempResult);\n"
+			<< "  gl_Position = gl_in[0].gl_Position;\n"
+			<< "  gl_PointSize = 1.0f;"
+			<< "  EmitVertex();\n"
+			<< "  EndPrimitive();\n"
+			<< "}\n";
+
+		programCollection.glslSources.add("geometry")
+			<< glu::GeometrySource(geometry.str()) << buildOptions;
+	}
+	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
+	{
+		std::ostringstream controlSource;
+
+		controlSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+			<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+			<< "layout(vertices = 2) out;\n"
+			<< "layout(location = 0) out float out_color[];\n"
+			<< "\n"
+			<< "void main (void)\n"
+			<< "{\n"
+			<< "  if (gl_InvocationID == 0)\n"
+			<< "  {\n"
+			<< "    gl_TessLevelOuter[0] = 1.0f;\n"
+			<< "    gl_TessLevelOuter[1] = 1.0f;\n"
+			<< "  }\n"
+			<< bdyStr
+			<< "  out_color[gl_InvocationID ] = float(tempResult);\n"
+			<< "  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+			<< "}\n";
+
+		programCollection.glslSources.add("tesc")
+			<< glu::TessellationControlSource(controlSource.str()) << buildOptions;
+		subgroups::setTesEvalShaderFrameBuffer(programCollection);
+	}
+	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
+	{
+		std::ostringstream evaluationSource;
+		evaluationSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+			<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+			<< "layout(isolines, equal_spacing, ccw ) in;\n"
+			<< "layout(location = 0) out float out_color;\n"
+			<< "void main (void)\n"
+			<< "{\n"
+			<< bdyStr
+			<< "  out_color  = float(tempResult);\n"
+			<< "  gl_Position = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);\n"
+			<< "}\n";
+
+		subgroups::setTesCtrlShaderFrameBuffer(programCollection);
+		programCollection.glslSources.add("tese")
+			<< glu::TessellationEvaluationSource(evaluationSource.str()) << buildOptions;
+	}
+	else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
+	{
+		const string vertex	= string(glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)) + "\n"
+			"void main (void)\n"
+			"{\n"
+			"  vec2 uv = vec2(float(gl_VertexIndex & 1), float((gl_VertexIndex >> 1) & 1));\n"
+			"  gl_Position = vec4(uv * 4.0f -2.0f, 0.0f, 1.0f);\n"
+			"  gl_PointSize = 1.0f;\n"
+			"}\n";
+		programCollection.glslSources.add("vert") << glu::VertexSource(vertex) << buildOptions;
+
+		std::ostringstream fragmentSource;
+		fragmentSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+					   << "precision highp int;\n"
+						<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+					   << "layout(location = 0) out uint out_color;\n"
+					   << "void main()\n"
+					   << "{\n"
+					   << bdyStr
+					   << "	 out_color = tempResult;\n"
+					   << "}\n";
+		programCollection.glslSources.add("fragment")
+			<< glu::FragmentSource(fragmentSource.str()) << buildOptions;
+	}
+	else
+	{
+		DE_FATAL("Unsupported shader stage");
+	}
+}
+
+void initPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
+{
+	std::string bdyStr = "  uint tempResult = gl_SubgroupSize;\n";
+
+	if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
+	{
+		std::ostringstream src;
+
+		src << "#version 450\n"
+			<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+			<< "layout (local_size_x_id = 0, local_size_y_id = 1, "
+			"local_size_z_id = 2) in;\n"
+			<< "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
+			<< "{\n"
+			<< "  uint result[];\n"
+			<< "};\n"
+			<< "\n"
+			<< "void main (void)\n"
+			<< "{\n"
+			<< "  uvec3 globalSize = gl_NumWorkGroups * gl_WorkGroupSize;\n"
+			<< "  highp uint offset = globalSize.x * ((globalSize.y * "
+			"gl_GlobalInvocationID.z) + gl_GlobalInvocationID.y) + "
+			"gl_GlobalInvocationID.x;\n"
+			<< bdyStr
+			<< "  result[offset] = tempResult;\n"
+			<< "}\n";
+
+		programCollection.glslSources.add("comp")
+				<< glu::ComputeSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+	}
+	else
+	{
+		const string vertex =
+			"#version 450\n"
+			"#extension GL_KHR_shader_subgroup_basic: enable\n"
+			"layout(set = 0, binding = 0, std430) buffer Buffer1\n"
+			"{\n"
+			"  uint result[];\n"
+			"};\n"
+			"\n"
+			"void main (void)\n"
+			"{\n"
+			+ bdyStr +
+			"  result[gl_VertexIndex] = tempResult;\n"
+			"  float pixelSize = 2.0f/1024.0f;\n"
+			"  float pixelPosition = pixelSize/2.0f - 1.0f;\n"
+			"  gl_Position = vec4(float(gl_VertexIndex) * pixelSize + pixelPosition, 0.0f, 0.0f, 1.0f);\n"
+			"  gl_PointSize = 1.0f;\n"
+			"}\n";
+
+		const string tesc =
+			"#version 450\n"
+			"#extension GL_KHR_shader_subgroup_basic: enable\n"
+			"layout(vertices=1) out;\n"
+			"layout(set = 0, binding = 1, std430) buffer Buffer1\n"
+			"{\n"
+			"  uint result[];\n"
+			"};\n"
+			"\n"
+			"void main (void)\n"
+			"{\n"
+			+ bdyStr +
+			"  result[gl_PrimitiveID] = tempResult;\n"
+			"  if (gl_InvocationID == 0)\n"
+			"  {\n"
+			"    gl_TessLevelOuter[0] = 1.0f;\n"
+			"    gl_TessLevelOuter[1] = 1.0f;\n"
+			"  }\n"
+			"  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+			"}\n";
+
+		const string tese =
+			"#version 450\n"
+			"#extension GL_KHR_shader_subgroup_basic: enable\n"
+			"layout(isolines) in;\n"
+			"layout(set = 0, binding = 2, std430) buffer Buffer1\n"
+			"{\n"
+			"  uint result[];\n"
+			"};\n"
+			"\n"
+			"void main (void)\n"
+			"{\n"
+			+ bdyStr +
+			"  result[gl_PrimitiveID * 2 + uint(gl_TessCoord.x + 0.5)] = tempResult;\n"
+			"  float pixelSize = 2.0f/1024.0f;\n"
+			"  gl_Position = gl_in[0].gl_Position + gl_TessCoord.x * pixelSize / 2.0f;\n"
+			"}\n";
+
+		const string geometry =
+			"#version 450\n"
+			"#extension GL_KHR_shader_subgroup_basic: enable\n"
+			"layout(${TOPOLOGY}) in;\n"
+			"layout(points, max_vertices = 1) out;\n"
+			"layout(set = 0, binding = 3, std430) buffer Buffer1\n"
+			"{\n"
+			"  uint result[];\n"
+			"};\n"
+			"\n"
+			"void main (void)\n"
+			"{\n"
+			+ bdyStr +
+			"  result[gl_PrimitiveIDIn] = tempResult;\n"
+			"  gl_Position = gl_in[0].gl_Position;\n"
+			"  gl_PointSize = 1.0f;\n"
+			"  EmitVertex();\n"
+			"  EndPrimitive();\n"
+			"}\n";
+
+		const string fragment =
+			"#version 450\n"
+			"#extension GL_KHR_shader_subgroup_basic: enable\n"
+			"layout(location = 0) out uint result;\n"
+			"void main (void)\n"
+			"{\n"
+			+ bdyStr +
+			"  result = tempResult;\n"
+			"}\n";
+
+		subgroups::addNoSubgroupShader(programCollection);
+
+		programCollection.glslSources.add("vert")
+				<< glu::VertexSource(vertex) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+		programCollection.glslSources.add("tesc")
+				<< glu::TessellationControlSource(tesc) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+		programCollection.glslSources.add("tese")
+				<< glu::TessellationEvaluationSource(tese) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+		subgroups::addGeometryShadersFromTemplate(geometry, vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u),
+												  programCollection.glslSources);
+		programCollection.glslSources.add("fragment")
+				<< glu::FragmentSource(fragment)<< vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+	}
+}
+
+void initProgramsRequireFull (SourceCollections& programCollection, CaseDefinition caseDef)
+{
+	if (VK_SHADER_STAGE_COMPUTE_BIT != caseDef.shaderStage)
+		DE_FATAL("Unsupported shader stage");
+
+	std::string bdyStr = "  uint tempResult = gl_SubgroupSize;\n";
+
+	std::ostringstream src;
+
+	src << "#version 450\n"
+		<< "#extension GL_KHR_shader_subgroup_basic: enable\n"
+		<< "#extension GL_KHR_shader_subgroup_ballot: enable\n"
+		<< "layout (local_size_x_id = 0, local_size_y_id = 1, "
+		"local_size_z_id = 2) in;\n"
+		<< "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
+		<< "{\n"
+		<< "  uvec4 result[];\n"
+		<< "};\n"
+		<< "\n"
+		<< "void main (void)\n"
+		<< "{\n"
+		<< "  uvec3 globalSize = gl_NumWorkGroups * gl_WorkGroupSize;\n"
+		<< "  highp uint offset = globalSize.x * ((globalSize.y * "
+		"gl_GlobalInvocationID.z) + gl_GlobalInvocationID.y) + "
+		"gl_GlobalInvocationID.x;\n"
+		<< "   result[offset].x = gl_SubgroupSize;" // save the subgroup size value
+		<< "   uint numActive = subgroupBallotBitCount(subgroupBallot(true));\n"
+		<< "   result[offset].y = numActive;\n" // save the number of active subgroup invocations
+		<< "   result[offset].z = gl_NumSubgroups;" // save the number of subgroups dispatched.
+		<< "}\n";
+
+	programCollection.glslSources.add("comp")
+		<< glu::ComputeSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+}
+
+void supportedCheck (Context& context)
+{
+	if (!subgroups::isSubgroupSupported(context))
+		TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
+
+	if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+	{
+		TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroups_size_control extension");
+	}
+}
+
+void supportedCheckFeatures (Context& context, CaseDefinition caseDef)
+{
+	supportedCheck(context);
+
+	if (!subgroups::areSubgroupOperationsSupportedForStage(context, caseDef.shaderStage))
+	{
+		TCU_THROW(NotSupportedError, "Shader stage is required to support subgroup operations!");
+	}
+
+	if (caseDef.shaderStage == VK_SHADER_STAGE_ALL_GRAPHICS)
+	{
+		VkPhysicalDeviceFeatures features;
+		context.getInstanceInterface().getPhysicalDeviceFeatures(context.getPhysicalDevice(), &features);
+		if (!features.tessellationShader || !features.geometryShader)
+			TCU_THROW(NotSupportedError, "Device does not support tessellation or geometry shaders");
+	}
+
+	if (caseDef.requiresBallot && !subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
+	{
+		TCU_THROW(NotSupportedError, "Device does not support subgroup ballot operations");
+	}
+
+	if (caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE ||
+		caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT)
+	{
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE)
+		{
+			VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+			subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+			subgroupSizeControlProperties.pNext = DE_NULL;
+
+			VkPhysicalDeviceProperties2 properties;
+			properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+			properties.pNext = &subgroupSizeControlProperties;
+
+			context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+			if ((subgroupSizeControlProperties.requiredSubgroupSizeStages & caseDef.shaderStage) != caseDef.shaderStage)
+				TCU_THROW(NotSupportedError, "Device does not support setting required subgroup size for the stages selected");
+		}
+	}
+
+	if (caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT)
+	{
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+}
+
+tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
+{
+	struct internalDataStruct internalData =
+	{
+		&context,
+		caseDef,
+		0u,
+	};
+
+	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
+		return subgroups::makeVertexFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, 0u);
+	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+		return subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, 0u);
+	else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
+		return subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.shaderStage, caseDef.pipelineShaderStageCreateFlags, 0u);
+	else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
+		return subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkFragmentPipelineStages, caseDef.pipelineShaderStageCreateFlags, 0u);
+
+	else
+		TCU_THROW(InternalError, "Unhandled shader stage");
+}
+
+tcu::TestStatus test (Context& context, const CaseDefinition caseDef)
+{
+	if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
+	{
+		const deUint32 numWorkgroups[3] = {1, 1, 1};
+		deUint32 subgroupSize = vkt::subgroups::getSubgroupSize(context);
+
+		VkPhysicalDeviceProperties physicalDeviceProperties;
+		context.getInstanceInterface().getPhysicalDeviceProperties(context.getPhysicalDevice(), &physicalDeviceProperties);
+		deUint32 localSizeX, localSizeY, localSizeZ;
+		// Calculate the local workgroup sizes to exercise the maximum supported by the driver
+		getLocalSizes(physicalDeviceProperties, physicalDeviceProperties.limits.maxComputeWorkGroupInvocations, localSizeX, localSizeY, localSizeZ);
+
+		const deUint32 localSizesToTestCount = 16;
+		deUint32 localSizesToTest[localSizesToTestCount][3] =
+		{
+			{1, 1, 1},
+			{32, 4, 1},
+			{32, 1, 4},
+			{1, 32, 4},
+			{1, 4, 32},
+			{4, 1, 32},
+			{4, 32, 1},
+			{subgroupSize, 1, 1},
+			{1, subgroupSize, 1},
+			{1, 1, subgroupSize},
+			{3, 5, 7},
+			{128, 1, 1},
+			{1, 128, 1},
+			{1, 1, 64},
+			{localSizeX, localSizeY, localSizeZ},
+			{1, 1, 1} // Isn't used, just here to make double buffering checks easier
+		};
+
+		struct internalDataStruct internalData =
+		{
+			&context,
+			caseDef,
+			subgroupSize,
+		};
+
+		return subgroups::makeComputeTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkCompute,
+															  caseDef.pipelineShaderStageCreateFlags, numWorkgroups, DE_FALSE, subgroupSize,
+															  localSizesToTest, localSizesToTestCount);
+	}
+	else
+	{
+		VkPhysicalDeviceSubgroupProperties subgroupProperties;
+		subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+		subgroupProperties.pNext = DE_NULL;
+
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
+
+		if ( VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
+		{
+			if ( (stages & VK_SHADER_STAGE_FRAGMENT_BIT) == 0)
+				TCU_THROW(NotSupportedError, "Device does not support vertex stage SSBO writes");
+			else
+				stages = VK_SHADER_STAGE_FRAGMENT_BIT;
+		}
+
+		if ((VkShaderStageFlagBits)0u == stages)
+			TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
+
+		struct internalDataStruct internalData =
+		{
+			&context,
+			caseDef,
+			0u,
+		};
+
+		return subgroups::allStagesRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, stages,
+														caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags,
+														caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, DE_NULL);
+	}
+	return tcu::TestStatus::pass("OK");
+}
+
+tcu::TestStatus testRequireFullSubgroups (Context& context, const CaseDefinition caseDef)
+{
+	DE_ASSERT(VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage);
+	DE_ASSERT(caseDef.requiredSubgroupSizeMode == REQUIRED_SUBGROUP_SIZE_NONE);
+
+	const deUint32 numWorkgroups[3] = {1, 1, 1};
+
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupSizeControlProperties;
+
+	context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+	VkPhysicalDeviceProperties physicalDeviceProperties;
+	context.getInstanceInterface().getPhysicalDeviceProperties(context.getPhysicalDevice(), &physicalDeviceProperties);
+
+	deUint32 localSizeX, localSizeY, localSizeZ;
+	// Calculate the local workgroup sizes to exercise the maximum supported by the driver
+	getLocalSizes(physicalDeviceProperties, physicalDeviceProperties.limits.maxComputeWorkGroupInvocations, localSizeX, localSizeY, localSizeZ);
+
+	const deUint32 subgroupSize = vkt::subgroups::getSubgroupSize(context);
+
+	// For full subgroups and allow varying subgroup size, localsize X must be a multiple of maxSubgroupSize.
+	// We set local size X for this test to the maximum, regardless if allow varying subgroup size is enabled or not.
+	const deUint32 localSizesToTestCount = 7;
+	deUint32 localSizesToTest[localSizesToTestCount][3] =
+	{
+		{subgroupSizeControlProperties.maxSubgroupSize, 1, 1},
+		{subgroupSizeControlProperties.maxSubgroupSize, 4, 1},
+		{subgroupSizeControlProperties.maxSubgroupSize, 1, 4},
+		{subgroupSizeControlProperties.maxSubgroupSize * 2, 1, 2},
+		{subgroupSizeControlProperties.maxSubgroupSize * 4, 1, 1},
+		{localSizeX, localSizeY, localSizeZ},
+		{1, 1, 1} // Isn't used, just here to make double buffering checks easier
+	};
+
+	struct internalDataStruct internalData =
+	{
+		&context,
+		caseDef,
+		subgroupSize,
+	};
+
+	return subgroups::makeComputeTestRequiredSubgroupSize(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, &internalData, checkComputeRequireFull,
+														  caseDef.pipelineShaderStageCreateFlags, numWorkgroups, DE_FALSE, subgroupSize,
+														  localSizesToTest, localSizesToTestCount);
+}
+
+tcu::TestStatus testRequireSubgroupSize (Context& context, const CaseDefinition caseDef)
+{
+	if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
+	{
+		const deUint32 numWorkgroups[3] = {1, 1, 1};
+
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+
+		VkPhysicalDeviceProperties2 properties2;
+		properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties2.pNext = &subgroupSizeControlProperties;
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties2);
+
+		VkPhysicalDeviceProperties physicalDeviceProperties;
+		context.getInstanceInterface().getPhysicalDeviceProperties(context.getPhysicalDevice(), &physicalDeviceProperties);
+
+		deUint32 requiredSubgroupSize = getRequiredSubgroupSizeFromMode(context, caseDef, subgroupSizeControlProperties);
+
+		const deUint64 maxSubgroupLimitSize = (deUint64)requiredSubgroupSize * subgroupSizeControlProperties.maxComputeWorkgroupSubgroups;
+		const deUint32 maxTotalLocalSize = (deUint32)std::min<deUint64>(maxSubgroupLimitSize, physicalDeviceProperties.limits.maxComputeWorkGroupInvocations);
+		deUint32 localSizeX, localSizeY, localSizeZ;
+		getLocalSizes(physicalDeviceProperties, maxTotalLocalSize, localSizeX, localSizeY, localSizeZ);
+
+		const deUint32 localSizesToTestCount = 5;
+		deUint32 localSizesToTest[localSizesToTestCount][3] =
+		{
+			{requiredSubgroupSize, 1, 1},
+			{1, requiredSubgroupSize, 1},
+			{1, 1, requiredSubgroupSize},
+			{localSizeX, localSizeY, localSizeZ},
+			{1, 1, 1} // Isn't used, just here to make double buffering checks easier
+		};
+
+		struct internalDataStruct internalData =
+		{
+			&context,
+			caseDef,
+			requiredSubgroupSize,
+		};
+
+		// Depending on the flag we need to run one verification function or another.
+		return subgroups::makeComputeTestRequiredSubgroupSize(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, &internalData,
+															  caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT ? checkComputeRequireFull : checkCompute,
+															  caseDef.pipelineShaderStageCreateFlags, numWorkgroups, DE_TRUE, requiredSubgroupSize,
+															  localSizesToTest, localSizesToTestCount);
+	}
+	else
+	{
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+
+		VkPhysicalDeviceSubgroupProperties subgroupProperties;
+		subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+		subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
+
+		if ( VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
+		{
+			if ( (stages & VK_SHADER_STAGE_FRAGMENT_BIT) == 0)
+				TCU_THROW(NotSupportedError, "Device does not support vertex stage SSBO writes");
+			else
+				stages = VK_SHADER_STAGE_FRAGMENT_BIT;
+		}
+
+		if ((VkShaderStageFlagBits)0u == stages)
+			TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
+
+		deUint32 requiredSubgroupSize = getRequiredSubgroupSizeFromMode(context, caseDef, subgroupSizeControlProperties);
+		const deUint32 requiredSubgroupSizes[5] = { requiredSubgroupSize, requiredSubgroupSize, requiredSubgroupSize, requiredSubgroupSize, requiredSubgroupSize};
+		struct internalDataStruct internalData =
+		{
+			&context,
+			caseDef,
+			requiredSubgroupSize,
+		};
+		return subgroups::allStagesRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, stages,
+														caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags,
+														caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSizes);
+	}
+	return tcu::TestStatus::pass("OK");
+}
+
+tcu::TestStatus noSSBOtestRequireSubgroupSize (Context& context, const CaseDefinition caseDef)
+{
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+
+	VkPhysicalDeviceSubgroupProperties subgroupProperties;
+	subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+	subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupProperties;
+
+	context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+	VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
+	if ((VkShaderStageFlagBits)0u == stages)
+		TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
+
+	deUint32 requiredSubgroupSize = getRequiredSubgroupSizeFromMode(context, caseDef, subgroupSizeControlProperties);
+	struct internalDataStruct internalData =
+	{
+		&context,
+		caseDef,
+		requiredSubgroupSize,
+	};
+
+	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
+		return subgroups::makeVertexFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+		return subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+	else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
+		return subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.shaderStage, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+	else if (VK_SHADER_STAGE_FRAGMENT_BIT & caseDef.shaderStage)
+		return subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkFragmentPipelineStages, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+	else
+		TCU_THROW(InternalError, "Unhandled shader stage");
+}
+
+tcu::TestStatus testSanitySubgroupSizeProperties (Context& context)
+{
+	VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+	subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+	subgroupSizeControlProperties.pNext = DE_NULL;
+
+	VkPhysicalDeviceSubgroupProperties subgroupProperties;
+	subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+	subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+	VkPhysicalDeviceProperties2 properties;
+	properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+	properties.pNext = &subgroupProperties;
+
+	context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+	if (subgroupProperties.subgroupSize > subgroupSizeControlProperties.maxSubgroupSize ||
+		subgroupProperties.subgroupSize < subgroupSizeControlProperties.minSubgroupSize)
+	{
+		std::ostringstream error;
+		error << "subgroupSize (" << subgroupProperties.subgroupSize << ") is not between maxSubgroupSize (";
+		error << subgroupSizeControlProperties.maxSubgroupSize << ") and minSubgroupSize (";
+		error << subgroupSizeControlProperties.minSubgroupSize << ")";
+		return tcu::TestStatus::fail(error.str().c_str());
+	}
+
+	return tcu::TestStatus::pass("OK");
+}
+}
+
+namespace vkt
+{
+namespace subgroups
+{
+tcu::TestCaseGroup* createSubgroupsSizeControlTests (tcu::TestContext& testCtx)
+{
+	const VkShaderStageFlags stages[] =
+	{
+		VK_SHADER_STAGE_VERTEX_BIT,
+		VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
+		VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
+		VK_SHADER_STAGE_GEOMETRY_BIT,
+		VK_SHADER_STAGE_FRAGMENT_BIT,
+	};
+
+	de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(
+		testCtx, "size_control", "VK_EXT_subgroup_size_control tests"));
+
+	de::MovePtr<tcu::TestCaseGroup> framebufferGroup(new tcu::TestCaseGroup(
+		testCtx, "framebuffer", "Subgroup size control category tests: framebuffer"));
+
+	de::MovePtr<tcu::TestCaseGroup> computeGroup(new tcu::TestCaseGroup(
+		testCtx, "compute", "Subgroup size control category tests: compute"));
+
+	de::MovePtr<tcu::TestCaseGroup> graphicsGroup(new tcu::TestCaseGroup(
+		testCtx, "graphics", "Subgroup size control category tests: graphics"));
+
+	de::MovePtr<tcu::TestCaseGroup> genericGroup(new tcu::TestCaseGroup(
+		testCtx, "generic", "Subgroup size control category tests: generic"));
+
+	// Test sanity of the subgroup size properties.
+	{
+		addFunctionCase(genericGroup.get(), "subgroup_size_properties", "", supportedCheck, testSanitySubgroupSizeProperties);
+	}
+
+	// Allow varying subgroup case.
+	{
+		const CaseDefinition caseDefCompute = {VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, VK_SHADER_STAGE_COMPUTE_BIT, DE_FALSE, REQUIRED_SUBGROUP_SIZE_NONE};
+		addFunctionCaseWithPrograms(computeGroup.get(), "allow_varying_subgroup_size", "", supportedCheckFeatures, initPrograms, test, caseDefCompute);
+		const CaseDefinition caseDefAllGraphics = {VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, VK_SHADER_STAGE_ALL_GRAPHICS, DE_FALSE, REQUIRED_SUBGROUP_SIZE_NONE};
+		addFunctionCaseWithPrograms(graphicsGroup.get(), "allow_varying_subgroup_size", "", supportedCheckFeatures, initPrograms, test, caseDefAllGraphics);
+
+		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
+		{
+			const CaseDefinition caseDefStage = {VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, stages[stageIndex], DE_FALSE, REQUIRED_SUBGROUP_SIZE_NONE};
+			addFunctionCaseWithPrograms(framebufferGroup.get(),  getShaderStageName(caseDefStage.shaderStage) + "_allow_varying_subgroup_size", "", supportedCheckFeatures, initFrameBufferPrograms, noSSBOtest, caseDefStage);
+		}
+	}
+
+	// Require full subgroups case (only compute shaders).
+	{
+		const CaseDefinition caseDef = {VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_NONE};
+		addFunctionCaseWithPrograms(computeGroup.get(), "require_full_subgroups", "", supportedCheckFeatures, initProgramsRequireFull, testRequireFullSubgroups, caseDef);
+	}
+
+	// Require full subgroups together with allow varying subgroup (only compute shaders).
+	{
+		deUint32 flags = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT | VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT;
+		const CaseDefinition caseDef = {flags, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_NONE};
+		addFunctionCaseWithPrograms(computeGroup.get(), "require_full_subgroups_allow_varying_subgroup_size", "", supportedCheckFeatures, initProgramsRequireFull, testRequireFullSubgroups, caseDef);
+	}
+
+	// Tests to check setting a required subgroup size value.
+	{
+		const CaseDefinition caseDefAllGraphicsMax = {0u, VK_SHADER_STAGE_ALL_GRAPHICS, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MAX};
+		addFunctionCaseWithPrograms(graphicsGroup.get(), "required_subgroup_size_max", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefAllGraphicsMax);
+		const CaseDefinition caseDefComputeMax = {0u, VK_SHADER_STAGE_COMPUTE_BIT, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MAX};
+		addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_max", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefComputeMax);
+
+		const CaseDefinition caseDefAllGraphicsMin = {0u, VK_SHADER_STAGE_ALL_GRAPHICS, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MIN};
+		addFunctionCaseWithPrograms(graphicsGroup.get(), "required_subgroup_size_min", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefAllGraphicsMin);
+		const CaseDefinition caseDefComputeMin = {0u, VK_SHADER_STAGE_COMPUTE_BIT, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MIN};
+		addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_min", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefComputeMin);
+		for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
+		{
+			const CaseDefinition caseDefStageMax = {0u, stages[stageIndex], DE_FALSE, REQUIRED_SUBGROUP_SIZE_MAX};
+			addFunctionCaseWithPrograms(framebufferGroup.get(),  getShaderStageName(caseDefStageMax.shaderStage) + "_required_subgroup_size_max", "", supportedCheckFeatures, initFrameBufferPrograms, noSSBOtestRequireSubgroupSize, caseDefStageMax);
+			const CaseDefinition caseDefStageMin = {0u, stages[stageIndex], DE_FALSE, REQUIRED_SUBGROUP_SIZE_MIN};
+			addFunctionCaseWithPrograms(framebufferGroup.get(),  getShaderStageName(caseDefStageMin.shaderStage) + "_required_subgroup_size_min", "", supportedCheckFeatures, initFrameBufferPrograms, noSSBOtestRequireSubgroupSize, caseDefStageMin);
+		}
+	}
+
+	// Tests to check setting a required subgroup size value, together with require full subgroups (only compute shaders).
+	{
+		deUint32 flags = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT;
+		const CaseDefinition caseDefMax = {flags, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_MAX};
+		addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_max_require_full_subgroups", "", supportedCheckFeatures, initProgramsRequireFull, testRequireSubgroupSize, caseDefMax);
+		const CaseDefinition caseDefMin = {flags, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_MIN};
+		addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_min_require_full_subgroups", "", supportedCheckFeatures, initProgramsRequireFull, testRequireSubgroupSize, caseDefMin);
+	}
+
+	group->addChild(genericGroup.release());
+	group->addChild(graphicsGroup.release());
+	group->addChild(computeGroup.release());
+	group->addChild(framebufferGroup.release());
+
+	return group.release();
+}
+
+} // subgroups
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.hpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.hpp
new file mode 100644
index 0000000..01dd5be
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTSUBGROUPSSIZECONTROLTESTS_HPP
+#define _VKTSUBGROUPSSIZECONTROLTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file
+ * \brief VK_EXT_subgroup_size_control Tests
+ */ /*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace subgroups
+{
+
+tcu::TestCaseGroup* createSubgroupsSizeControlTests(tcu::TestContext& testCtx);
+
+} // subgroups
+} // vkt
+
+#endif // _VKTSUBGROUPSSIZECONTROLTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp
index 3b7c5d9..d327005 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp
@@ -37,6 +37,7 @@
 #include "vktSubgroupsQuadTests.hpp"
 #include "vktSubgroupsShapeTests.hpp"
 #include "vktSubgroupsBallotMasksTests.hpp"
+#include "vktSubgroupsSizeControlTests.hpp"
 #include "vktTestGroupUtil.hpp"
 
 namespace vkt
@@ -65,6 +66,7 @@
 	subgroupsTests->addChild(createSubgroupsQuadTests(testCtx));
 	subgroupsTests->addChild(createSubgroupsShapeTests(testCtx));
 	subgroupsTests->addChild(createSubgroupsBallotMasksTests(testCtx));
+	subgroupsTests->addChild(createSubgroupsSizeControlTests(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp
index c6fd9b5..f147b40 100644
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp
@@ -191,6 +191,303 @@
 							&renderPassCreateInfo);
 }
 
+Move<VkPipeline> makeGraphicsPipeline(const DeviceInterface&						vk,
+									  const VkDevice								device,
+									  const VkPipelineLayout						pipelineLayout,
+									  const VkShaderModule							vertexShaderModule,
+									  const VkShaderModule							tessellationControlShaderModule,
+									  const VkShaderModule							tessellationEvalShaderModule,
+									  const VkShaderModule							geometryShaderModule,
+									  const VkShaderModule							fragmentShaderModule,
+									  const VkRenderPass							renderPass,
+									  const std::vector<VkViewport>&				viewports,
+									  const std::vector<VkRect2D>&					scissors,
+									  const VkPrimitiveTopology						topology,
+									  const deUint32								subpass,
+									  const deUint32								patchControlPoints,
+									  const VkPipelineVertexInputStateCreateInfo*	vertexInputStateCreateInfo,
+									  const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo,
+									  const VkPipelineMultisampleStateCreateInfo*	multisampleStateCreateInfo,
+									  const VkPipelineDepthStencilStateCreateInfo*	depthStencilStateCreateInfo,
+									  const VkPipelineColorBlendStateCreateInfo*	colorBlendStateCreateInfo,
+									  const VkPipelineDynamicStateCreateInfo*		dynamicStateCreateInfo,
+									  const deUint32								vertexShaderStageCreateFlags,
+									  const deUint32								tessellationControlShaderStageCreateFlags,
+									  const deUint32								tessellationEvalShaderStageCreateFlags,
+									  const deUint32								geometryShaderStageCreateFlags,
+									  const deUint32								fragmentShaderStageCreateFlags,
+									  const deUint32								requiredSubgroupSize[5])
+{
+	const VkBool32									disableRasterization				= (fragmentShaderModule == DE_NULL);
+	const bool										hasTessellation						= (tessellationControlShaderModule != DE_NULL || tessellationEvalShaderModule != DE_NULL);
+
+	VkPipelineShaderStageCreateInfo					stageCreateInfo						=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,	// VkStructureType                     sType
+		DE_NULL,												// const void*                         pNext
+		0u,														// VkPipelineShaderStageCreateFlags    flags
+		VK_SHADER_STAGE_VERTEX_BIT,								// VkShaderStageFlagBits               stage
+		DE_NULL,												// VkShaderModule                      module
+		"main",													// const char*                         pName
+		DE_NULL													// const VkSpecializationInfo*         pSpecializationInfo
+	};
+
+	std::vector<VkPipelineShaderStageCreateInfo>	pipelineShaderStageParams;
+
+	const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT requiredSubgroupSizeCreateInfo[5] =
+		{
+			{
+				VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+				DE_NULL,
+				requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[0] : 0u,
+			},
+			{
+				VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+				DE_NULL,
+				requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[1] : 0u,
+			},
+			{
+				VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+				DE_NULL,
+				requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[2] : 0u,
+			},
+			{
+				VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+				DE_NULL,
+				requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[3] : 0u,
+			},
+			{
+				VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+				DE_NULL,
+				requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[4] : 0u,
+			},
+		};
+	{
+		stageCreateInfo.pNext	= (requiredSubgroupSizeCreateInfo[0].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[0] : DE_NULL;
+		stageCreateInfo.flags	= vertexShaderStageCreateFlags;
+		stageCreateInfo.stage	= VK_SHADER_STAGE_VERTEX_BIT;
+		stageCreateInfo.module	= vertexShaderModule;
+		pipelineShaderStageParams.push_back(stageCreateInfo);
+	}
+
+	if (tessellationControlShaderModule != DE_NULL)
+	{
+		stageCreateInfo.pNext	= (requiredSubgroupSizeCreateInfo[1].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[1] : DE_NULL;
+		stageCreateInfo.flags	= tessellationControlShaderStageCreateFlags;
+		stageCreateInfo.stage	= VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
+		stageCreateInfo.module	= tessellationControlShaderModule;
+		pipelineShaderStageParams.push_back(stageCreateInfo);
+	}
+
+	if (tessellationEvalShaderModule != DE_NULL)
+	{
+		stageCreateInfo.pNext	= (requiredSubgroupSize != DE_NULL && requiredSubgroupSizeCreateInfo[2].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[2] : DE_NULL;
+		stageCreateInfo.flags	= tessellationEvalShaderStageCreateFlags;
+		stageCreateInfo.stage	= VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
+		stageCreateInfo.module	= tessellationEvalShaderModule;
+		pipelineShaderStageParams.push_back(stageCreateInfo);
+	}
+
+	if (geometryShaderModule != DE_NULL)
+	{
+		stageCreateInfo.pNext	= (requiredSubgroupSizeCreateInfo[3].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[3] : DE_NULL;
+		stageCreateInfo.flags	= geometryShaderStageCreateFlags;
+		stageCreateInfo.stage	= VK_SHADER_STAGE_GEOMETRY_BIT;
+		stageCreateInfo.module	= geometryShaderModule;
+		pipelineShaderStageParams.push_back(stageCreateInfo);
+	}
+
+	if (fragmentShaderModule != DE_NULL)
+	{
+		stageCreateInfo.pNext	= (requiredSubgroupSizeCreateInfo[4].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[4] : DE_NULL;
+		stageCreateInfo.flags	= fragmentShaderStageCreateFlags;
+		stageCreateInfo.stage	= VK_SHADER_STAGE_FRAGMENT_BIT;
+		stageCreateInfo.module	= fragmentShaderModule;
+		pipelineShaderStageParams.push_back(stageCreateInfo);
+	}
+
+	const VkVertexInputBindingDescription			vertexInputBindingDescription		=
+	{
+		0u,								// deUint32             binding
+		sizeof(tcu::Vec4),				// deUint32             stride
+		VK_VERTEX_INPUT_RATE_VERTEX,	// VkVertexInputRate    inputRate
+	};
+
+	const VkVertexInputAttributeDescription			vertexInputAttributeDescription		=
+	{
+		0u,								// deUint32    location
+		0u,								// deUint32    binding
+		VK_FORMAT_R32G32B32A32_SFLOAT,	// VkFormat    format
+		0u								// deUint32    offset
+	};
+
+	const VkPipelineVertexInputStateCreateInfo		vertexInputStateCreateInfoDefault	=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	// VkStructureType                             sType
+		DE_NULL,													// const void*                                 pNext
+		(VkPipelineVertexInputStateCreateFlags)0,					// VkPipelineVertexInputStateCreateFlags       flags
+		1u,															// deUint32                                    vertexBindingDescriptionCount
+		&vertexInputBindingDescription,								// const VkVertexInputBindingDescription*      pVertexBindingDescriptions
+		1u,															// deUint32                                    vertexAttributeDescriptionCount
+		&vertexInputAttributeDescription							// const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions
+	};
+
+	const VkPipelineInputAssemblyStateCreateInfo	inputAssemblyStateCreateInfo		=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,	// VkStructureType                            sType
+		DE_NULL,														// const void*                                pNext
+		0u,																// VkPipelineInputAssemblyStateCreateFlags    flags
+		topology,														// VkPrimitiveTopology                        topology
+		VK_FALSE														// VkBool32                                   primitiveRestartEnable
+	};
+
+	const VkPipelineTessellationStateCreateInfo		tessStateCreateInfo					=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,	// VkStructureType                           sType
+		DE_NULL,													// const void*                               pNext
+		0u,															// VkPipelineTessellationStateCreateFlags    flags
+		patchControlPoints											// deUint32                                  patchControlPoints
+	};
+
+	const VkPipelineViewportStateCreateInfo			viewportStateCreateInfo				=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,	// VkStructureType                             sType
+		DE_NULL,												// const void*                                 pNext
+		(VkPipelineViewportStateCreateFlags)0,					// VkPipelineViewportStateCreateFlags          flags
+		viewports.empty() ? 1u : (deUint32)viewports.size(),	// deUint32                                    viewportCount
+		viewports.empty() ? DE_NULL : &viewports[0],			// const VkViewport*                           pViewports
+		viewports.empty() ? 1u : (deUint32)scissors.size(),		// deUint32                                    scissorCount
+		scissors.empty() ? DE_NULL : &scissors[0]				// const VkRect2D*                             pScissors
+	};
+
+	const VkPipelineRasterizationStateCreateInfo	rasterizationStateCreateInfoDefault	=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	// VkStructureType                            sType
+		DE_NULL,													// const void*                                pNext
+		0u,															// VkPipelineRasterizationStateCreateFlags    flags
+		VK_FALSE,													// VkBool32                                   depthClampEnable
+		disableRasterization,										// VkBool32                                   rasterizerDiscardEnable
+		VK_POLYGON_MODE_FILL,										// VkPolygonMode                              polygonMode
+		VK_CULL_MODE_NONE,											// VkCullModeFlags                            cullMode
+		VK_FRONT_FACE_COUNTER_CLOCKWISE,							// VkFrontFace                                frontFace
+		VK_FALSE,													// VkBool32                                   depthBiasEnable
+		0.0f,														// float                                      depthBiasConstantFactor
+		0.0f,														// float                                      depthBiasClamp
+		0.0f,														// float                                      depthBiasSlopeFactor
+		1.0f														// float                                      lineWidth
+	};
+
+	const VkPipelineMultisampleStateCreateInfo		multisampleStateCreateInfoDefault	=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	// VkStructureType                          sType
+		DE_NULL,													// const void*                              pNext
+		0u,															// VkPipelineMultisampleStateCreateFlags    flags
+		VK_SAMPLE_COUNT_1_BIT,										// VkSampleCountFlagBits                    rasterizationSamples
+		VK_FALSE,													// VkBool32                                 sampleShadingEnable
+		1.0f,														// float                                    minSampleShading
+		DE_NULL,													// const VkSampleMask*                      pSampleMask
+		VK_FALSE,													// VkBool32                                 alphaToCoverageEnable
+		VK_FALSE													// VkBool32                                 alphaToOneEnable
+	};
+
+	const VkStencilOpState							stencilOpState						=
+	{
+		VK_STENCIL_OP_KEEP,		// VkStencilOp    failOp
+		VK_STENCIL_OP_KEEP,		// VkStencilOp    passOp
+		VK_STENCIL_OP_KEEP,		// VkStencilOp    depthFailOp
+		VK_COMPARE_OP_NEVER,	// VkCompareOp    compareOp
+		0,						// deUint32       compareMask
+		0,						// deUint32       writeMask
+		0						// deUint32       reference
+	};
+
+	const VkPipelineDepthStencilStateCreateInfo		depthStencilStateCreateInfoDefault	=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,	// VkStructureType                          sType
+		DE_NULL,													// const void*                              pNext
+		0u,															// VkPipelineDepthStencilStateCreateFlags   flags
+		VK_FALSE,													// VkBool32                                 depthTestEnable
+		VK_FALSE,													// VkBool32                                 depthWriteEnable
+		VK_COMPARE_OP_LESS_OR_EQUAL,								// VkCompareOp                              depthCompareOp
+		VK_FALSE,													// VkBool32                                 depthBoundsTestEnable
+		VK_FALSE,													// VkBool32                                 stencilTestEnable
+		stencilOpState,												// VkStencilOpState                         front
+		stencilOpState,												// VkStencilOpState                         back
+		0.0f,														// float                                    minDepthBounds
+		1.0f,														// float                                    maxDepthBounds
+	};
+
+	const VkPipelineColorBlendAttachmentState		colorBlendAttachmentState			=
+	{
+		VK_FALSE,					// VkBool32                 blendEnable
+		VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            srcColorBlendFactor
+		VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            dstColorBlendFactor
+		VK_BLEND_OP_ADD,			// VkBlendOp                colorBlendOp
+		VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            srcAlphaBlendFactor
+		VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            dstAlphaBlendFactor
+		VK_BLEND_OP_ADD,			// VkBlendOp                alphaBlendOp
+		VK_COLOR_COMPONENT_R_BIT	// VkColorComponentFlags    colorWriteMask
+		| VK_COLOR_COMPONENT_G_BIT
+		| VK_COLOR_COMPONENT_B_BIT
+		| VK_COLOR_COMPONENT_A_BIT
+	};
+
+	const VkPipelineColorBlendStateCreateInfo		colorBlendStateCreateInfoDefault	=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,	// VkStructureType                               sType
+		DE_NULL,													// const void*                                   pNext
+		0u,															// VkPipelineColorBlendStateCreateFlags          flags
+		VK_FALSE,													// VkBool32                                      logicOpEnable
+		VK_LOGIC_OP_CLEAR,											// VkLogicOp                                     logicOp
+		1u,															// deUint32                                      attachmentCount
+		&colorBlendAttachmentState,									// const VkPipelineColorBlendAttachmentState*    pAttachments
+		{ 0.0f, 0.0f, 0.0f, 0.0f }									// float                                         blendConstants[4]
+	};
+
+	std::vector<VkDynamicState>						dynamicStates;
+
+	if (viewports.empty())
+		dynamicStates.push_back(VK_DYNAMIC_STATE_VIEWPORT);
+	if (scissors.empty())
+		dynamicStates.push_back(VK_DYNAMIC_STATE_SCISSOR);
+
+	const VkPipelineDynamicStateCreateInfo			dynamicStateCreateInfoDefault		=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,	// VkStructureType                      sType
+		DE_NULL,												// const void*                          pNext
+		0u,														// VkPipelineDynamicStateCreateFlags    flags
+		(deUint32)dynamicStates.size(),							// deUint32                             dynamicStateCount
+		dynamicStates.empty() ? DE_NULL : &dynamicStates[0]		// const VkDynamicState*                pDynamicStates
+	};
+
+	const VkPipelineDynamicStateCreateInfo*			dynamicStateCreateInfoDefaultPtr	= dynamicStates.empty() ? DE_NULL : &dynamicStateCreateInfoDefault;
+
+	const VkGraphicsPipelineCreateInfo				pipelineCreateInfo					=
+	{
+		VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,														// VkStructureType                                  sType
+		DE_NULL,																								// const void*                                      pNext
+		0u,																										// VkPipelineCreateFlags                            flags
+		(deUint32)pipelineShaderStageParams.size(),																// deUint32                                         stageCount
+		&pipelineShaderStageParams[0],																			// const VkPipelineShaderStageCreateInfo*           pStages
+		vertexInputStateCreateInfo ? vertexInputStateCreateInfo : &vertexInputStateCreateInfoDefault,			// const VkPipelineVertexInputStateCreateInfo*      pVertexInputState
+		&inputAssemblyStateCreateInfo,																			// const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState
+		hasTessellation ? &tessStateCreateInfo : DE_NULL,														// const VkPipelineTessellationStateCreateInfo*     pTessellationState
+		&viewportStateCreateInfo,																				// const VkPipelineViewportStateCreateInfo*         pViewportState
+		rasterizationStateCreateInfo ? rasterizationStateCreateInfo : &rasterizationStateCreateInfoDefault,		// const VkPipelineRasterizationStateCreateInfo*    pRasterizationState
+		multisampleStateCreateInfo ? multisampleStateCreateInfo: &multisampleStateCreateInfoDefault,			// const VkPipelineMultisampleStateCreateInfo*      pMultisampleState
+		depthStencilStateCreateInfo ? depthStencilStateCreateInfo : &depthStencilStateCreateInfoDefault,		// const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState
+		colorBlendStateCreateInfo ? colorBlendStateCreateInfo : &colorBlendStateCreateInfoDefault,				// const VkPipelineColorBlendStateCreateInfo*       pColorBlendState
+		dynamicStateCreateInfo ? dynamicStateCreateInfo : dynamicStateCreateInfoDefaultPtr,						// const VkPipelineDynamicStateCreateInfo*          pDynamicState
+		pipelineLayout,																							// VkPipelineLayout                                 layout
+		renderPass,																								// VkRenderPass                                     renderPass
+		subpass,																								// deUint32                                         subpass
+		DE_NULL,																								// VkPipeline                                       basePipelineHandle
+		0																										// deInt32                                          basePipelineIndex;
+	};
+
+	return createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
+}
+
 Move<VkPipeline> makeGraphicsPipeline(Context&									context,
 									  const VkPipelineLayout					pipelineLayout,
 									  const VkShaderStageFlags					stages,
@@ -204,7 +501,13 @@
 									  const VkVertexInputBindingDescription*	vertexInputBindingDescription = DE_NULL,
 									  const VkVertexInputAttributeDescription*	vertexInputAttributeDescriptions = DE_NULL,
 									  const bool								frameBufferTests = false,
-									  const vk::VkFormat						attachmentFormat = VK_FORMAT_R32G32B32A32_SFLOAT)
+									  const vk::VkFormat						attachmentFormat = VK_FORMAT_R32G32B32A32_SFLOAT,
+									  const deUint32							vertexShaderStageCreateFlags = 0u,
+									  const deUint32							tessellationControlShaderStageCreateFlags = 0u,
+									  const deUint32							tessellationEvalShaderStageCreateFlags = 0u,
+									  const deUint32							geometryShaderStageCreateFlags = 0u,
+									  const deUint32							fragmentShaderStageCreateFlags = 0u,
+									  const deUint32							requiredSubgroupSize[5] = DE_NULL)
 {
 	std::vector<VkViewport>	noViewports;
 	std::vector<VkRect2D>	noScissors;
@@ -243,73 +546,32 @@
 
 	const deUint32 patchControlPoints = (VK_SHADER_STAGE_FRAGMENT_BIT & stages && frameBufferTests) ? 2u : 1u;
 
-	return vk::makeGraphicsPipeline(context.getDeviceInterface(),	// const DeviceInterface&                        vk
-									context.getDevice(),			// const VkDevice                                device
-									pipelineLayout,					// const VkPipelineLayout                        pipelineLayout
-									vertexShaderModule,				// const VkShaderModule                          vertexShaderModule
-									tessellationControlModule,		// const VkShaderModule                          tessellationControlShaderModule
-									tessellationEvaluationModule,	// const VkShaderModule                          tessellationEvalShaderModule
-									geometryShaderModule,			// const VkShaderModule                          geometryShaderModule
-									fragmentShaderModule,			// const VkShaderModule                          fragmentShaderModule
-									renderPass,						// const VkRenderPass                            renderPass
-									noViewports,					// const std::vector<VkViewport>&                viewports
-									noScissors,						// const std::vector<VkRect2D>&                  scissors
-									topology,						// const VkPrimitiveTopology                     topology
-									0u,								// const deUint32                                subpass
-									patchControlPoints,				// const deUint32                                patchControlPoints
-									&vertexInputStateCreateInfo,	// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
-									DE_NULL,						// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
-									DE_NULL,						// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
-									DE_NULL,						// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
-									&colorBlendStateCreateInfo);	// const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
-}
-
-Move<VkPipeline> makeComputePipeline(Context& context,
-									 const VkPipelineLayout pipelineLayout, const VkShaderModule shaderModule,
-									 const deUint32 pipelineCreateFlags, VkPipeline basePipelineHandle,
-									 deUint32 localSizeX, deUint32 localSizeY, deUint32 localSizeZ)
-{
-	const deUint32 localSize[3] = {localSizeX, localSizeY, localSizeZ};
-
-	const vk::VkSpecializationMapEntry entries[3] =
-	{
-		{0, sizeof(deUint32) * 0, sizeof(deUint32)},
-		{1, sizeof(deUint32) * 1, sizeof(deUint32)},
-		{2, static_cast<deUint32>(sizeof(deUint32) * 2), sizeof(deUint32)},
-	};
-
-	const vk::VkSpecializationInfo info =
-	{
-		/* mapEntryCount = */ 3,
-		/* pMapEntries   = */ entries,
-		/* dataSize      = */ sizeof(localSize),
-		/* pData         = */ localSize
-	};
-
-	const vk::VkPipelineShaderStageCreateInfo pipelineShaderStageParams =
-	{
-		VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,				// VkStructureType					sType;
-		DE_NULL,															// const void*						pNext;
-		0u,																	// VkPipelineShaderStageCreateFlags	flags;
-		VK_SHADER_STAGE_COMPUTE_BIT,										// VkShaderStageFlagBits			stage;
-		shaderModule,														// VkShaderModule					module;
-		"main",																// const char*						pName;
-		&info,																// const VkSpecializationInfo*		pSpecializationInfo;
-	};
-
-	const vk::VkComputePipelineCreateInfo pipelineCreateInfo =
-	{
-		VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,	// VkStructureType	sType;
-		DE_NULL,										// const void*						pNext;
-		pipelineCreateFlags,							// VkPipelineCreateFlags			flags;
-		pipelineShaderStageParams,						// VkPipelineShaderStageCreateInfo	stage;
-		pipelineLayout,									// VkPipelineLayout					layout;
-		basePipelineHandle,								// VkPipeline						basePipelineHandle;
-		-1,												// deInt32							basePipelineIndex;
-	};
-
-	return createComputePipeline(context.getDeviceInterface(),
-								 context.getDevice(), DE_NULL, &pipelineCreateInfo);
+	return makeGraphicsPipeline(context.getDeviceInterface(),	// const DeviceInterface&                        vk
+								context.getDevice(),			// const VkDevice                                device
+								pipelineLayout,					// const VkPipelineLayout                        pipelineLayout
+								vertexShaderModule,				// const VkShaderModule                          vertexShaderModule
+								tessellationControlModule,		// const VkShaderModule                          tessellationControlShaderModule
+								tessellationEvaluationModule,	// const VkShaderModule                          tessellationEvalShaderModule
+								geometryShaderModule,			// const VkShaderModule                          geometryShaderModule
+								fragmentShaderModule,			// const VkShaderModule                          fragmentShaderModule
+								renderPass,						// const VkRenderPass                            renderPass
+								noViewports,					// const std::vector<VkViewport>&                viewports
+								noScissors,						// const std::vector<VkRect2D>&                  scissors
+								topology,						// const VkPrimitiveTopology                     topology
+								0u,								// const deUint32                                subpass
+								patchControlPoints,				// const deUint32                                patchControlPoints
+								&vertexInputStateCreateInfo,	// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
+								DE_NULL,						// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+								DE_NULL,						// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
+								DE_NULL,						// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
+								&colorBlendStateCreateInfo,		// const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
+								DE_NULL,						// const VkPipelineDynamicStateCreateInfo*
+								vertexShaderStageCreateFlags,	// const deUint32								 vertexShaderStageCreateFlags,
+								tessellationControlShaderStageCreateFlags,	// const deUint32					 tessellationControlShaderStageCreateFlags
+								tessellationEvalShaderStageCreateFlags,		// const deUint32					 tessellationEvalShaderStageCreateFlags
+								geometryShaderStageCreateFlags,	// const deUint32								 geometryShaderStageCreateFlags
+								fragmentShaderStageCreateFlags,	// const deUint32								 fragmentShaderStageCreateFlags
+								requiredSubgroupSize);			// const deUint32								 requiredSubgroupSize[5]
 }
 
 Move<VkCommandBuffer> makeCommandBuffer(
@@ -1722,6 +1984,20 @@
 	}
 }
 
+bool vkt::subgroups::isFormatBool (VkFormat format)
+{
+	switch (format)
+	{
+		default:
+			return false;
+		case VK_FORMAT_R8_USCALED:
+		case VK_FORMAT_R8G8_USCALED:
+		case VK_FORMAT_R8G8B8_USCALED:
+		case VK_FORMAT_R8G8B8A8_USCALED:
+			return true;
+	}
+}
+
 void vkt::subgroups::setVertexShaderFrameBuffer (SourceCollections& programCollection)
 {
 	/*
@@ -2206,12 +2482,21 @@
 	return -1;
 }
 
-tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest (
+tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest(
 	Context& context, VkFormat format, SSBOData* extraData,
-	deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
 	const VkShaderStageFlags shaderStage)
 {
+	return makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, shaderStage, 0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(
+	Context& context, VkFormat format, SSBOData* extraData,
+	deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	const VkShaderStageFlags shaderStage, const deUint32 tessShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
+{
 	const DeviceInterface&					vk						= context.getDeviceInterface();
 	const VkDevice							device					= context.getDevice();
 	const deUint32							maxWidth				= getMaxWidth();
@@ -2269,11 +2554,20 @@
 
 	const Unique<VkPipelineLayout>			pipelineLayout			(makePipelineLayout(vk, device, *descriptorSetLayout));
 
+	const deUint32 requiredSubgroupSizes[5] = {0u,
+											   ((shaderStage & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? requiredSubgroupSize : 0u),
+											   ((shaderStage & VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? requiredSubgroupSize : 0u),
+											   0u,
+											   0u};
+
 	const Unique<VkPipeline>				pipeline				(makeGraphicsPipeline(context, *pipelineLayout,
-																	VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT |
-																	VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
-																	*vertexShaderModule, *fragmentShaderModule, DE_NULL, *teCtrlShaderModule, *teEvalShaderModule,
-																	*renderPass, VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, &vertexInputBinding, &vertexInputAttribute, true, format));
+																						  VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT |
+																						  VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
+																						  *vertexShaderModule, *fragmentShaderModule, DE_NULL, *teCtrlShaderModule, *teEvalShaderModule,
+																						  *renderPass, VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, &vertexInputBinding, &vertexInputAttribute, true, format,
+																						  0u, ((shaderStage & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? tessShaderStageCreateFlags : 0u),
+																						  ((shaderStage & VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? tessShaderStageCreateFlags : 0u),
+																						  0u, 0u, requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 
 	for (deUint32 ndx = 0u; ndx < extraDataCount; ndx++)
 		poolBuilder.addType(inputBuffers[ndx]->getType());
@@ -2384,7 +2678,7 @@
 
 			std::vector<const void*> datas;
 			datas.push_back(allocResult.getHostPtr());
-			if (!checkResult(datas, width/2u, subgroupSize))
+			if (!checkResult(internalData, datas, width/2u, subgroupSize))
 				failedIterations++;
 		}
 	}
@@ -2431,8 +2725,18 @@
 
 tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTest(
 	Context& context, VkFormat format, SSBOData* extraData,
-	deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+	deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+{
+	return makeGeometryFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult,
+														   0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize(
+	Context& context, VkFormat format, SSBOData* extraData,
+	deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	const deUint32 geometryShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
 {
 	const DeviceInterface&					vk						= context.getDeviceInterface();
 	const VkDevice							device					= context.getDevice();
@@ -2485,10 +2789,14 @@
 
 	const Unique<VkPipelineLayout>			pipelineLayout			(makePipelineLayout(vk, device, *descriptorSetLayout));
 
+	const deUint32 requiredSubgroupSizes[5] = {0u, 0u, 0u, requiredSubgroupSize, 0u};
+
 	const Unique<VkPipeline>				pipeline				(makeGraphicsPipeline(context, *pipelineLayout,
-																	VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_GEOMETRY_BIT,
-																	*vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, DE_NULL, DE_NULL,
-																	*renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, &vertexInputBinding, &vertexInputAttribute, true, format));
+																						  VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_GEOMETRY_BIT,
+																						  *vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, DE_NULL, DE_NULL,
+																						  *renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, &vertexInputBinding, &vertexInputAttribute, true, format,
+																						  0u, 0u, 0u, geometryShaderStageCreateFlags, 0u,
+																						  requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 
 	for (deUint32 ndx = 0u; ndx < extraDataCount; ndx++)
 		poolBuilder.addType(inputBuffers[ndx]->getType());
@@ -2605,7 +2913,7 @@
 
 			std::vector<const void*> datas;
 			datas.push_back(allocResult.getHostPtr());
-			if (!checkResult(datas, width, subgroupSize))
+			if (!checkResult(internalData, datas, width, subgroupSize))
 				failedIterations++;
 		}
 	}
@@ -2624,12 +2932,27 @@
 	return tcu::TestStatus::pass("OK");
 }
 
-
 tcu::TestStatus vkt::subgroups::allStages(
+	Context& context, VkFormat format, SSBOData* extraData,
+	deUint32 extraDataCount, const void* internalData,
+	const VerificationFunctor& checkResult,
+	const vk::VkShaderStageFlags shaderStage)
+{
+	return vkt::subgroups::allStagesRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, shaderStage,
+														 0u, 0u, 0u, 0u, 0u, DE_NULL);
+}
+
+tcu::TestStatus vkt::subgroups::allStagesRequiredSubgroupSize(
 	Context& context, VkFormat format, SSBOData* extraDatas,
-	deUint32 extraDatasCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
-	const VkShaderStageFlags shaderStageTested)
+	deUint32 extraDatasCount, const void* internalData,
+	const VerificationFunctor& checkResult,
+	const VkShaderStageFlags shaderStageTested,
+	const deUint32 vertexShaderStageCreateFlags,
+	const deUint32 tessellationControlShaderStageCreateFlags,
+	const deUint32 tessellationEvalShaderStageCreateFlags,
+	const deUint32 geometryShaderStageCreateFlags,
+	const deUint32 fragmentShaderStageCreateFlags,
+	const deUint32 requiredSubgroupSize[5])
 {
 	const DeviceInterface&			vk					= context.getDeviceInterface();
 	const VkDevice					device				= context.getDevice();
@@ -2740,10 +3063,13 @@
 
 	const Unique<VkRenderPass> renderPass(makeRenderPass(context, format));
 	const Unique<VkPipeline> pipeline(makeGraphicsPipeline(context, *pipelineLayout,
-										shaderStageRequired,
-										*vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, *teCtrlShaderModule, *teEvalShaderModule,
-										*renderPass,
-										(shaderStageRequired & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? VK_PRIMITIVE_TOPOLOGY_PATCH_LIST : VK_PRIMITIVE_TOPOLOGY_POINT_LIST));
+														   shaderStageRequired,
+														   *vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, *teCtrlShaderModule, *teEvalShaderModule,
+														   *renderPass,
+														   (shaderStageRequired & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? VK_PRIMITIVE_TOPOLOGY_PATCH_LIST : VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+														   DE_NULL, DE_NULL, false, VK_FORMAT_R32G32B32A32_SFLOAT,
+														   vertexShaderStageCreateFlags, tessellationControlShaderStageCreateFlags, tessellationEvalShaderStageCreateFlags,
+														   geometryShaderStageCreateFlags, fragmentShaderStageCreateFlags, requiredSubgroupSize));
 
 	Move <VkDescriptorPool>	descriptorPool;
 	Move <VkDescriptorSet>	descriptorSet;
@@ -2884,7 +3210,14 @@
 					}
 				}
 
-				if (!checkResult(datas, (stagesVector[ndx] == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? width * 2 : width , subgroupSize))
+				// Any stage in the vertex pipeline may be called multiple times per vertex, so we may need >= non-strict comparisons.
+				const bool		multiCall	= (	stagesVector[ndx] == VK_SHADER_STAGE_VERTEX_BIT						||
+												stagesVector[ndx] == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT		||
+												stagesVector[ndx] == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT	||
+												stagesVector[ndx] == VK_SHADER_STAGE_GEOMETRY_BIT					);
+				const deUint32	usedWidth	= ((stagesVector[ndx] == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? width * 2 : width);
+
+				if (!checkResult(internalData, datas, usedWidth, subgroupSize, multiCall))
 					failedIterations++;
 			}
 			if (shaderStageTested & VK_SHADER_STAGE_FRAGMENT_BIT)
@@ -2908,7 +3241,7 @@
 					}
 				}
 
-				if (!checkResult(datas, width, subgroupSize))
+				if (!checkResult(internalData, datas, width, subgroupSize, false))
 					failedIterations++;
 			}
 
@@ -2931,8 +3264,17 @@
 }
 
 tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTest(Context& context, vk::VkFormat format,
-	SSBOData* extraData, deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+{
+	return makeVertexFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult,
+														 0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	const deUint32 vertexShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
 {
 	const DeviceInterface&					vk						= context.getDeviceInterface();
 	const VkDevice							device					= context.getDevice();
@@ -2982,12 +3324,15 @@
 
 	const Unique<VkPipelineLayout>			pipelineLayout			(makePipelineLayout(vk, device, *descriptorSetLayout));
 
+	const deUint32 requiredSubgroupSizes[5] = {requiredSubgroupSize, 0u, 0u, 0u, 0u};
 	const Unique<VkPipeline>				pipeline				(makeGraphicsPipeline(context, *pipelineLayout,
-																		VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
-																		*vertexShaderModule, *fragmentShaderModule,
-																		DE_NULL, DE_NULL, DE_NULL,
-																		*renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
-																		&vertexInputBinding, &vertexInputAttribute, true, format));
+																						  VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
+																						  *vertexShaderModule, *fragmentShaderModule,
+																						  DE_NULL, DE_NULL, DE_NULL,
+																						  *renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+																						  &vertexInputBinding, &vertexInputAttribute, true, format,
+																						  vertexShaderStageCreateFlags, 0u, 0u, 0u, 0u,
+																						  requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 	DescriptorPoolBuilder					poolBuilder;
 	DescriptorSetUpdateBuilder				updateBuilder;
 
@@ -3117,7 +3462,7 @@
 
 			std::vector<const void*> datas;
 			datas.push_back(allocResult.getHostPtr());
-			if (!checkResult(datas, width, subgroupSize))
+			if (!checkResult(internalData, datas, width, subgroupSize))
 				failedIterations++;
 		}
 	}
@@ -3136,12 +3481,23 @@
 	return tcu::TestStatus::pass("OK");
 }
 
-
-tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest	(Context& context, VkFormat format, SSBOData* extraDatas,
-	deUint32 extraDatasCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width,
+tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest(
+	Context& context, VkFormat format, SSBOData* extraDatas,
+	deUint32 extraDatasCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
 						deUint32 height, deUint32 subgroupSize))
 {
+	return makeFragmentFrameBufferTestRequiredSubgroupSize(context, format, extraDatas, extraDatasCount, internalData, checkResult,
+														   0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize(
+	Context& context, VkFormat format, SSBOData* extraDatas,
+	deUint32 extraDatasCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
+						deUint32 height, deUint32 subgroupSize),
+	const deUint32 fragmentShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
+{
 	const DeviceInterface&					vk						= context.getDeviceInterface();
 	const VkDevice							device					= context.getDevice();
 	const VkQueue							queue					= context.getUniversalQueue();
@@ -3186,10 +3542,13 @@
 		makePipelineLayout(vk, device, *descriptorSetLayout));
 
 	const Unique<VkRenderPass> renderPass(makeRenderPass(context, format));
+
+	const deUint32 requiredSubgroupSizes[5] = {0u, 0u, 0u, 0u, requiredSubgroupSize};
 	const Unique<VkPipeline> pipeline(makeGraphicsPipeline(context, *pipelineLayout,
-									  VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
-									  *vertexShaderModule, *fragmentShaderModule, DE_NULL, DE_NULL, DE_NULL, *renderPass, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
-									  DE_NULL, DE_NULL, true));
+														   VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
+														   *vertexShaderModule, *fragmentShaderModule, DE_NULL, DE_NULL, DE_NULL, *renderPass, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
+														   DE_NULL, DE_NULL, true, VK_FORMAT_R32G32B32A32_SFLOAT,
+														   0u, 0u, 0u, 0u, fragmentShaderStageCreateFlags, requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 
 	DescriptorPoolBuilder poolBuilder;
 
@@ -3318,7 +3677,7 @@
 				datas.push_back(resultAlloc.getHostPtr());
 			}
 
-			if (!checkResult(datas, width, height, subgroupSize))
+			if (!checkResult(internalData, datas, width, height, subgroupSize))
 			{
 				failedIterations++;
 			}
@@ -3341,11 +3700,68 @@
 	return tcu::TestStatus::pass("OK");
 }
 
-tcu::TestStatus vkt::subgroups::makeComputeTest(
-	Context& context, VkFormat format, SSBOData* inputs, deUint32 inputsCount,
-	bool (*checkResult)(std::vector<const void*> datas,
+Move<VkPipeline> makeComputePipeline(Context& context,
+									 const VkPipelineLayout pipelineLayout, const VkShaderModule shaderModule,
+									 const deUint32 pipelineShaderStageFlags, const deUint32 pipelineCreateFlags, VkPipeline basePipelineHandle,
+									 deUint32 localSizeX, deUint32 localSizeY, deUint32 localSizeZ, deUint32 requiredSubgroupSize)
+{
+	const deUint32 localSize[3] = {localSizeX, localSizeY, localSizeZ};
+
+	const vk::VkSpecializationMapEntry entries[3] =
+	{
+		{0, sizeof(deUint32) * 0, sizeof(deUint32)},
+		{1, sizeof(deUint32) * 1, sizeof(deUint32)},
+		{2, static_cast<deUint32>(sizeof(deUint32) * 2), sizeof(deUint32)},
+	};
+
+	const vk::VkSpecializationInfo info =
+	{
+		/* mapEntryCount = */ 3,
+		/* pMapEntries   = */ entries,
+		/* dataSize      = */ sizeof(localSize),
+		/* pData         = */ localSize
+	};
+
+	const vk::VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT subgroupSizeCreateInfo =
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,	// VkStructureType    sType;
+		DE_NULL,																		// void*              pNext;
+		requiredSubgroupSize															// uint32_t           requiredSubgroupSize;
+	};
+
+	const vk::VkPipelineShaderStageCreateInfo pipelineShaderStageParams =
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,				// VkStructureType					sType;
+		(requiredSubgroupSize != 0u ? &subgroupSizeCreateInfo : DE_NULL),	// const void*						pNext;
+		pipelineShaderStageFlags,											// VkPipelineShaderStageCreateFlags	flags;
+		VK_SHADER_STAGE_COMPUTE_BIT,										// VkShaderStageFlagBits			stage;
+		shaderModule,														// VkShaderModule					module;
+		"main",																// const char*						pName;
+		&info,																// const VkSpecializationInfo*		pSpecializationInfo;
+	};
+
+	const vk::VkComputePipelineCreateInfo pipelineCreateInfo =
+	{
+		VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,	// VkStructureType	sType;
+		DE_NULL,										// const void*						pNext;
+		pipelineCreateFlags,							// VkPipelineCreateFlags			flags;
+		pipelineShaderStageParams,						// VkPipelineShaderStageCreateInfo	stage;
+		pipelineLayout,									// VkPipelineLayout					layout;
+		basePipelineHandle,								// VkPipeline						basePipelineHandle;
+		-1,												// deInt32							basePipelineIndex;
+	};
+
+	return createComputePipeline(context.getDeviceInterface(),
+								 context.getDevice(), DE_NULL, &pipelineCreateInfo);
+}
+
+tcu::TestStatus vkt::subgroups::makeComputeTestRequiredSubgroupSize(
+	Context& context, VkFormat format, SSBOData* inputs, deUint32 inputsCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
 						const deUint32 numWorkgroups[3], const deUint32 localSize[3],
-						deUint32 subgroupSize))
+						deUint32 subgroupSize),
+	const deUint32 pipelineShaderStageCreateFlags, const deUint32 numWorkgroups[3],
+	const deBool isRequiredSubgroupSize, const deUint32 subgroupSize, const deUint32 localSizesToTest[][3], const deUint32 localSizesToTestCount)
 {
 	const DeviceInterface&					vk						= context.getDeviceInterface();
 	const VkDevice							device					= context.getDevice();
@@ -3353,9 +3769,25 @@
 	const deUint32							queueFamilyIndex		= context.getUniversalQueueFamilyIndex();
 	VkDeviceSize							elementSize				= getFormatSizeInBytes(format);
 
-	const VkDeviceSize resultBufferSize = maxSupportedSubgroupSize() *
-										  maxSupportedSubgroupSize() *
-										  maxSupportedSubgroupSize();
+	VkDeviceSize maxSubgroupSize = maxSupportedSubgroupSize();
+
+	if (isRequiredSubgroupSize)
+	{
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+
+		VkPhysicalDeviceProperties2 properties2;
+		properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties2.pNext = &subgroupSizeControlProperties;
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties2);
+		maxSubgroupSize = deMax32(subgroupSizeControlProperties.maxSubgroupSize, static_cast<deUint32>(maxSubgroupSize));
+	}
+
+	const VkDeviceSize resultBufferSize = maxSubgroupSize *
+										  maxSubgroupSize *
+										  maxSubgroupSize;
+
 	const VkDeviceSize resultBufferSizeInBytes = resultBufferSize * elementSize;
 
 	Buffer resultBuffer(
@@ -3458,33 +3890,17 @@
 	unsigned totalIterations = 0;
 	unsigned failedIterations = 0;
 
-	const deUint32 subgroupSize = getSubgroupSize(context);
-
 	const Unique<VkCommandBuffer> cmdBuffer(
 		makeCommandBuffer(context, *cmdPool));
 
-	const deUint32 numWorkgroups[3] = {4, 2, 2};
-
-	const deUint32 localSizesToTestCount = 8;
-	deUint32 localSizesToTest[localSizesToTestCount][3] =
-	{
-		{1, 1, 1},
-		{subgroupSize, 1, 1},
-		{1, subgroupSize, 1},
-		{1, 1, subgroupSize},
-		{32, 4, 1},
-		{1, 4, 32},
-		{3, 5, 7},
-		{1, 1, 1} // Isn't used, just here to make double buffering checks easier
-	};
-
-	Move<VkPipeline> pipelines[localSizesToTestCount - 1];
+	Move<VkPipeline> *pipelines = new Move<VkPipeline>[localSizesToTestCount - 1];
 
 	context.getTestContext().touchWatchdog();
 	pipelines[0] =
 		makeComputePipeline(context, *pipelineLayout, *shaderModule,
-							VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, (VkPipeline) DE_NULL,
-							localSizesToTest[0][0], localSizesToTest[0][1], localSizesToTest[0][2]);
+							pipelineShaderStageCreateFlags, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, (VkPipeline) DE_NULL,
+							localSizesToTest[0][0], localSizesToTest[0][1], localSizesToTest[0][2],
+							isRequiredSubgroupSize ? subgroupSize : 0u);
 	context.getTestContext().touchWatchdog();
 
 	for (deUint32 index = 1; index < (localSizesToTestCount - 1); index++)
@@ -3496,8 +3912,9 @@
 		context.getTestContext().touchWatchdog();
 		pipelines[index] =
 			makeComputePipeline(context, *pipelineLayout, *shaderModule,
-								VK_PIPELINE_CREATE_DERIVATIVE_BIT, *pipelines[0],
-								nextX, nextY, nextZ);
+								pipelineShaderStageCreateFlags, VK_PIPELINE_CREATE_DERIVATIVE_BIT, *pipelines[0],
+								nextX, nextY, nextZ,
+								isRequiredSubgroupSize ? subgroupSize : 0u);
 		context.getTestContext().touchWatchdog();
 	}
 
@@ -3543,7 +3960,7 @@
 			}
 		}
 
-		if (!checkResult(datas, numWorkgroups, localSizesToTest[index], subgroupSize))
+		if (!checkResult(internalData, datas, numWorkgroups, localSizesToTest[index], subgroupSize))
 		{
 			failedIterations++;
 		}
@@ -3551,6 +3968,8 @@
 		vk.resetCommandBuffer(*cmdBuffer, 0);
 	}
 
+	delete[] pipelines;
+
 	if (0 < failedIterations)
 	{
 		unsigned valuesPassed = (failedIterations > totalIterations) ? 0u : (totalIterations - failedIterations);
@@ -3564,3 +3983,33 @@
 
 	return tcu::TestStatus::pass("OK");
 }
+
+tcu::TestStatus vkt::subgroups::makeComputeTest(
+	Context& context, VkFormat format, SSBOData* inputs, deUint32 inputsCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
+						const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+						deUint32 subgroupSize),
+	deUint32 requiredSubgroupSize, const deUint32 pipelineShaderStageCreateFlags)
+{
+	const deUint32 numWorkgroups[3] = {4, 2, 2};
+	deUint32 subgroupSize = requiredSubgroupSize;
+
+	if(requiredSubgroupSize == 0)
+		subgroupSize = vkt::subgroups::getSubgroupSize(context);
+
+	const deUint32 localSizesToTestCount = 8;
+	deUint32 localSizesToTest[localSizesToTestCount][3] =
+	{
+		{1, 1, 1},
+		{subgroupSize, 1, 1},
+		{1, subgroupSize, 1},
+		{1, 1, subgroupSize},
+		{32, 4, 1},
+		{1, 4, 32},
+		{3, 5, 7},
+		{1, 1, 1} // Isn't used, just here to make double buffering checks easier
+	};
+
+	return makeComputeTestRequiredSubgroupSize(context, format, inputs, inputsCount, internalData, checkResult, pipelineShaderStageCreateFlags,
+											   numWorkgroups, requiredSubgroupSize != 0u, subgroupSize, localSizesToTest, localSizesToTestCount);
+}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.hpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.hpp
index 45dc7ae..9cb4d54 100644
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.hpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.hpp
@@ -152,6 +152,7 @@
 bool isFormatSigned (vk::VkFormat format);
 bool isFormatUnsigned (vk::VkFormat format);
 bool isFormatFloat (vk::VkFormat format);
+bool isFormatBool (vk::VkFormat format);
 
 void addGeometryShadersFromTemplate (const std::string& glslTemplate, const vk::ShaderBuildOptions& options, vk::GlslSourceCollection& collection);
 void addGeometryShadersFromTemplate (const std::string& spirvTemplate, const vk::SpirVAsmBuildOptions& options, vk::SpirVAsmCollection& collection);
@@ -174,34 +175,106 @@
 	deUint32 ref);
 
 tcu::TestStatus makeTessellationEvaluationFrameBufferTest(Context& context, vk::VkFormat format,
-	SSBOData* extraData, deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
 	const vk::VkShaderStageFlags shaderStage = vk::VK_SHADER_STAGE_ALL_GRAPHICS);
 
 tcu::TestStatus makeGeometryFrameBufferTest(Context& context, vk::VkFormat format, SSBOData* extraData,
-	deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
+	deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
+
+// Allows using verification functions with or without the optional last boolean argument.
+// If using a function that does not need the last argument, it will not be passed down to it.
+class VerificationFunctor
+{
+public:
+	using NoLastArgVariant	= bool(*)(const void*, std::vector<const void*>, deUint32, deUint32);
+	using AllArgsVariant	= bool(*)(const void*, std::vector<const void*>, deUint32, deUint32, bool);
+
+	VerificationFunctor (NoLastArgVariant func)
+		: m_noLastArgFunc{func}, m_allArgsFunc{nullptr}
+		{}
+
+	VerificationFunctor (AllArgsVariant func)
+		: m_noLastArgFunc{nullptr}, m_allArgsFunc{func}
+		{}
+
+	bool operator() (const void* extraData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize, bool multipleCallsPossible) const
+	{
+		if (m_allArgsFunc)
+			return m_allArgsFunc(extraData, datas, width, subgroupSize, multipleCallsPossible);
+		return m_noLastArgFunc(extraData, datas, width, subgroupSize);
+	}
+
+private:
+	NoLastArgVariant	m_noLastArgFunc;
+	AllArgsVariant		m_allArgsFunc;
+};
 
 tcu::TestStatus allStages(Context& context, vk::VkFormat format,
-	SSBOData* extraData, deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	const VerificationFunctor& checkResult,
 	const vk::VkShaderStageFlags shaderStage);
 
 tcu::TestStatus makeVertexFrameBufferTest(Context& context, vk::VkFormat format,
-	SSBOData* extraData, deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
 
 tcu::TestStatus makeFragmentFrameBufferTest(Context& context, vk::VkFormat format,
-	SSBOData* extraData, deUint32 extraDataCount,
-	bool (*checkResult)(std::vector<const void*> datas, deUint32 width,
-									 deUint32 height, deUint32 subgroupSize));
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
+						deUint32 height, deUint32 subgroupSize));
 
 tcu::TestStatus makeComputeTest(
 	Context& context, vk::VkFormat format, SSBOData* inputs,
-	deUint32 inputsCount,
-	bool (*checkResult)(std::vector<const void*> datas,
+	deUint32 inputsCount,const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
 		const deUint32 numWorkgroups[3], const deUint32 localSize[3],
-		deUint32 subgroupSize));
+		deUint32 subgroupSize),
+	deUint32 requiredSubgroupSize = 0u, const deUint32 pipelineShaderStageCreateFlags = 0u);
+
+/* Functions needed for VK_EXT_subgroup_size_control tests */
+tcu::TestStatus makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	const vk::VkShaderStageFlags shaderStage = vk::VK_SHADER_STAGE_ALL_GRAPHICS,
+	const deUint32 tessShaderStageCreateFlags = 0u, const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus makeGeometryFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format, SSBOData* extraData,
+	deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	const deUint32 geometryShaderStageCreateFlags = 0u, const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus allStagesRequiredSubgroupSize(Context& context, vk::VkFormat format,
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	const VerificationFunctor& checkResult,
+	const vk::VkShaderStageFlags shaderStage,
+	const deUint32 vertexShaderStageCreateFlags,
+	const deUint32 tessellationControlShaderStageCreateFlags,
+	const deUint32 tessellationEvalShaderStageCreateFlags,
+	const deUint32 geometryShaderStageCreateFlags,
+	const deUint32 fragmentShaderStageCreateFlags,
+	const deUint32 requiredSubgroupSize[5]);
+
+tcu::TestStatus makeVertexFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+	const deUint32 vertexShaderStageCreateFlags = 0u,
+	const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus makeFragmentFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+	SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
+						deUint32 height, deUint32 subgroupSize),
+	const deUint32 fragmentShaderStageCreateFlags = 0u, const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus makeComputeTestRequiredSubgroupSize(
+	Context& context, vk::VkFormat format, SSBOData* inputs, deUint32 inputsCount, const void* internalData,
+	bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
+						const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+						deUint32 subgroupSize),
+	const deUint32 pipelineShaderStageCreateFlags, const deUint32 numWorkgroups[3],
+	const deBool isRequiredSubgroupSize, const deUint32 subgroupSize, const deUint32 localSizesToTest[][3], const deUint32 localSizesToTestCount);
 } // subgroups
 } // vkt
 
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp
index feaa42f..fd3bd55 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp
@@ -48,15 +48,17 @@
 	OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::check(datas, width, 0x1F);
 }
 
-static bool checkFragmentPipelineStages(std::vector<const void*> datas,
+static bool checkFragmentPipelineStages(const void* internalData, std::vector<const void*> datas,
 									  deUint32 width, deUint32 height, deUint32)
 {
+	DE_UNREF(internalData);
 	const deUint32* data =
 		reinterpret_cast<const deUint32*>(datas[0]);
 	for (deUint32 x = 0u; x < width; ++x)
@@ -81,10 +83,11 @@
 	return true;
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
 						 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
 						 deUint32)
 {
+	DE_UNREF(internalData);
 	return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0x1F);
 }
 
@@ -116,6 +119,7 @@
 	VkShaderStageFlags	shaderStage;
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
+	deBool				requiredSubgroupSize;
 };
 
 bool fmtIsBoolean(VkFormat format)
@@ -622,6 +626,27 @@
 		context.requireDeviceFunctionality("VK_EXT_shader_subgroup_vote");
 	}
 
+	if (caseDef.requiredSubgroupSize)
+	{
+		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+		VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+		subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+		subgroupSizeControlFeatures.pNext = DE_NULL;
+
+		VkPhysicalDeviceFeatures2 features;
+		features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		features.pNext = &subgroupSizeControlFeatures;
+
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+		if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+	}
+
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -656,15 +681,15 @@
 	inputData.initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType) ? subgroups::SSBOData::InitializeZero : subgroups::SSBOData::InitializeNonZero;
 
 	if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+		return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
 	else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 	else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+		return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 	else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
-		return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkFragmentPipelineStages);
+		return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkFragmentPipelineStages);
 	else
 		TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -687,8 +712,35 @@
 		inputData.numElements = subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType) ? subgroups::SSBOData::InitializeZero : subgroups::SSBOData::InitializeNonZero;
 
-		return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData,
-										  1, checkCompute);
+		if (caseDef.requiredSubgroupSize == DE_FALSE)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData,
+											  1, DE_NULL, checkCompute);
+
+		tcu::TestLog& log	= context.getTestContext().getLog();
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
+		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+		{
+			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+			if (result.getCode() != QP_TEST_RESULT_PASS)
+			{
+				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+				return result;
+			}
+		}
+		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -723,7 +775,7 @@
 		inputData.binding			= 4u;
 		inputData.stages			= stages;
 
-		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+		return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
 	}
 }
 }
@@ -795,23 +847,31 @@
 			const std::string op = de::toLower(getOpTypeName(opTypeIndex));
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				if (opTypeIndex < OPTYPE_LAST_NON_ARB)
 				{
 					addFunctionCaseWithPrograms(computeGroup.get(),
 												op + "_" + subgroups::getFormatNameForGLSL(format),
 												"", supportedCheck, initPrograms, test, caseDef);
+					caseDef.requiredSubgroupSize = DE_TRUE;
+					addFunctionCaseWithPrograms(computeGroup.get(),
+												op + "_" + subgroups::getFormatNameForGLSL(format) + "_requiredsubgroupsize",
+												"", supportedCheck, initPrograms, test, caseDef);
 				}
 				else
 				{
 					addFunctionCaseWithPrograms(computeGroupARB.get(),
 												op + "_" + subgroups::getFormatNameForGLSL(format),
 												"", supportedCheck, initPrograms, test, caseDef);
+					caseDef.requiredSubgroupSize = DE_TRUE;
+					addFunctionCaseWithPrograms(computeGroupARB.get(),
+												op + "_" + subgroups::getFormatNameForGLSL(format) + "_requiredsubgroupsize",
+												"", supportedCheck, initPrograms, test, caseDef);
 				}
 			}
 
 			{
-				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
+				const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				if (opTypeIndex < OPTYPE_LAST_NON_ARB)
 				{
 					addFunctionCaseWithPrograms(graphicGroup.get(),
@@ -828,7 +888,7 @@
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+				const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
 				if (opTypeIndex < OPTYPE_LAST_NON_ARB)
 				{
 					addFunctionCaseWithPrograms(framebufferGroup.get(),
@@ -847,7 +907,7 @@
 				}
 			}
 
-			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_FRAGMENT_BIT, format, de::SharedPtr<bool>(new bool)};
+			const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_FRAGMENT_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
 			if (opTypeIndex < OPTYPE_LAST_NON_ARB)
 			{
 				addFunctionCaseWithPrograms(fragHelperGroup.get(),
diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
index 08f1dc6..8ccd654 100644
--- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
+++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
@@ -120,6 +120,11 @@
 			m_context.requireDeviceFunctionality("VK_KHR_external_memory_fd");
 		}
 
+		if (config.memoryHandleType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT)
+		{
+			m_context.requireDeviceFunctionality("VK_EXT_external_memory_dma_buf");
+		}
+
 		if (config.memoryHandleType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR
 			|| config.memoryHandleType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR
 			|| config.semaphoreHandleType == vk::VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR
@@ -337,6 +342,9 @@
 	if (context.isDeviceFunctionalitySupported("VK_KHR_external_memory_fd"))
 		extensions.push_back("VK_KHR_external_memory_fd");
 
+	if (context.isDeviceFunctionalitySupported("VK_EXT_external_memory_dma_buf"))
+		extensions.push_back("VK_EXT_external_memory_dma_buf");
+
 	if (context.isDeviceFunctionalitySupported("VK_KHR_external_semaphore_win32"))
 		extensions.push_back("VK_KHR_external_semaphore_win32");
 	if (context.isDeviceFunctionalitySupported("VK_KHR_external_memory_win32"))
@@ -1351,6 +1359,11 @@
 			vk::VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
 			"_win32"
 		},
+		{
+			vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
+			vk::VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
+			"_dma_buf"
+		},
 	};
 
 	const std::string semaphoreNames[vk::VK_SEMAPHORE_TYPE_LAST] =
diff --git a/external/vulkancts/modules/vulkan/texture/CMakeLists.txt b/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
index 3994a62..3ccd307 100644
--- a/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
@@ -3,6 +3,7 @@
 include_directories(
 	..
 	../shaderexecutor
+	../amber
 	)
 
 set(DEQP_VK_TEXTURE_SRCS
@@ -22,6 +23,8 @@
 	vktTextureMipmapTests.hpp
 	vktTextureShadowTests.cpp
 	vktTextureShadowTests.hpp
+	vktTextureSubgroupLodTests.cpp
+	vktTextureSubgroupLodTests.hpp
 	vktTextureFilteringAnisotropyTests.cpp
 	vktTextureFilteringAnisotropyTests.hpp
 	vktTextureCompressedFormatTests.cpp
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp
new file mode 100644
index 0000000..fb253c9
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp
@@ -0,0 +1,58 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Google Inc.
+ *
+ * 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 Subgroup LOD tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTextureSubgroupLodTests.hpp"
+#include "vktAmberTestCase.hpp"
+#include "vktTestGroupUtil.hpp"
+
+using namespace vk;
+
+namespace vkt
+{
+namespace texture
+{
+namespace
+{
+
+void populateSubgroupLodTests (tcu::TestCaseGroup* group)
+{
+	tcu::TestContext&			testCtx			= group->getTestContext();
+	cts_amber::AmberTestCase*	testCaseLod		= cts_amber::createAmberTestCase(testCtx, "texturelod", "", "texture_subgroup_lod", "texture_lod.amber");
+	cts_amber::AmberTestCase*	testCaseGrad	= cts_amber::createAmberTestCase(testCtx, "texturegrad", "", "texture_subgroup_lod", "texture_grad.amber");
+	cts_amber::AmberTestCase*	testCaseFetch	= cts_amber::createAmberTestCase(testCtx, "texelfetch", "", "texture_subgroup_lod", "texel_fetch.amber");
+
+	group->addChild(testCaseLod);
+	group->addChild(testCaseGrad);
+	group->addChild(testCaseFetch);
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createTextureSubgroupLodTests (tcu::TestContext& testCtx)
+{
+	return createTestGroup(testCtx, "subgroup_lod", "Texture subgroup LOD tests.", populateSubgroupLodTests);
+}
+
+} // texture
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.hpp b/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.hpp
new file mode 100644
index 0000000..940d181
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.hpp
@@ -0,0 +1,41 @@
+#ifndef _VKTTEXTURESUBGROUPLODTESTS_HPP
+#define _VKTTEXTURESUBGROUPLODTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Google Inc.
+ *
+ * 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 Subgroup LOD tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace texture
+{
+
+tcu::TestCaseGroup*	createTextureSubgroupLodTests	(tcu::TestContext& testCtx);
+
+} // texture
+} // vkt
+
+#endif // _VKTTEXTURESUBGROUPLODTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
index 54ab558..2bcfaa2 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
@@ -32,6 +32,7 @@
 #include "vktTextureFilteringAnisotropyTests.hpp"
 #include "vktTextureCompressedFormatTests.hpp"
 #include "vktTextureSwizzleTests.hpp"
+#include "vktTextureSubgroupLodTests.hpp"
 
 namespace vkt
 {
@@ -51,6 +52,7 @@
 	textureTests->addChild(createFilteringAnisotropyTests		(testCtx));
 	textureTests->addChild(createTextureCompressedFormatTests	(testCtx));
 	textureTests->addChild(createTextureSwizzleTests			(testCtx));
+	textureTests->addChild(createTextureSubgroupLodTests		(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
index f0f617d..23c659f 100644
--- a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
+++ b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
@@ -1657,6 +1657,7 @@
 	const deUint32											componentsRequired			= m_locationsRequired * componentsPerLocation;
 	const InstanceInterface&								vki							= m_context.getInstanceInterface();
 	const VkPhysicalDevice									physDevice					= m_context.getPhysicalDevice();
+	const VkPhysicalDeviceFeatures							features					= getPhysicalDeviceFeatures(vki, physDevice);
 	const VkPhysicalDeviceTransformFeedbackFeaturesEXT&		transformFeedbackFeatures	= m_context.getTransformFeedbackFeaturesEXT();
 	const VkPhysicalDeviceLimits							limits						= getPhysicalDeviceProperties(vki, physDevice).limits;
 	VkPhysicalDeviceTransformFeedbackPropertiesEXT			transformFeedbackProperties;
@@ -1690,6 +1691,9 @@
 
 	if (m_testStageFlags == TEST_STAGE_GEOMETRY)
 	{
+		if (!features.geometryShader)
+			TCU_THROW(NotSupportedError, "Missing feature: geometryShader");
+
 		if (limits.maxGeometryOutputComponents < componentsRequired)
 			TCU_THROW(NotSupportedError, "maxGeometryOutputComponents=" + de::toString(limits.maxGeometryOutputComponents) + " is less than required (" + de::toString(componentsRequired) + ")");
 	}
diff --git a/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp b/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp
index 70adcd6..943f54c 100644
--- a/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp
+++ b/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp
@@ -30,6 +30,7 @@
 #include "gluVarType.hpp"
 #include "tcuTestLog.hpp"
 #include "tcuSurface.hpp"
+#include "deInt32.h"
 #include "deRandom.hpp"
 #include "deStringUtil.hpp"
 
@@ -400,12 +401,6 @@
 	return (deInt32)align;
 }
 
-static inline int deRoundUp32 (int a, int b)
-{
-	int d = a/b;
-	return d*b == a ? a : (d+1)*b;
-}
-
 
 int computeStd140BaseAlignment (const VarType& type, deUint32 layoutFlags)
 {
diff --git a/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp b/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp
index a02e4e8..c933341 100644
--- a/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp
+++ b/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp
@@ -104,45 +104,59 @@
 	return de::toLower(name.substr(22));
 }
 
-DrawState::DrawState(const vk::VkPrimitiveTopology topology_, deUint32 renderWidth_, deUint32 renderHeight_, const int subpixelBits_)
-	: topology					(topology_)
-	, colorFormat				(VK_FORMAT_R8G8B8A8_UNORM)
-	, renderSize				(tcu::UVec2(renderWidth_, renderHeight_))
-	, depthClampEnable			(false)
-	, depthTestEnable			(false)
-	, depthWriteEnable			(false)
-	, compareOp					(rr::TESTFUNC_LESS)
-	, depthBoundsTestEnable		(false)
-	, blendEnable				(false)
-	, lineWidth					(1.0)
-	, numPatchControlPoints		(0)
-	, numSamples				(VK_SAMPLE_COUNT_1_BIT)
-	, sampleShadingEnable		(false)
-	, subpixelBits			(subpixelBits_)
-	, explicitDepthClipEnable	(false)
-	, depthClipEnable			(false)
+FrameBufferState::FrameBufferState(deUint32 renderWidth_, deUint32 renderHeight_)
+	: renderSize(renderWidth_, renderHeight_)
 {
 	DE_ASSERT(renderSize.x() != 0 && renderSize.y() != 0);
 }
 
+PipelineState::PipelineState(const int subpixelBits_)
+	: subpixelBits			(subpixelBits_)
+{
+}
+
+DrawCallData::DrawCallData(const vk::VkPrimitiveTopology topology_, const std::vector<tcu::Vec4>&	vertices_)
+	: topology(topology_), vertices(vertices_)
+{
+}
+
+ReferenceDrawContext::ReferenceDrawContext(const FrameBufferState& framebufferState)
+	: DrawContext(framebufferState)
+{
+}
+
 ReferenceDrawContext::~ReferenceDrawContext (void)
 {
 }
 
+void ReferenceDrawContext::registerDrawObject(const PipelineState& pipelineState, std::shared_ptr<rr::VertexShader>& vertexShader, std::shared_ptr<rr::FragmentShader>&	fragmentShader, const DrawCallData& drawCallData)
+{
+	m_pipelineStates.push_back(pipelineState);
+	m_vertexShaders.push_back(vertexShader);
+	m_fragmentShaders.push_back(fragmentShader);
+	m_drawCallData.push_back(drawCallData);
+}
+
+
 void ReferenceDrawContext::draw (void)
 {
-	m_refImage.setStorage(vk::mapVkFormat(m_drawState.colorFormat), m_drawState.renderSize.x(), m_drawState.renderSize.y());
+	DE_ASSERT(m_fragmentShaders.size() == m_vertexShaders.size());
+	DE_ASSERT(m_vertexShaders.size() == m_drawCallData.size());
+	DE_ASSERT(m_drawCallData.size() == m_pipelineStates.size());
+
+	m_refImage.setStorage(vk::mapVkFormat(m_framebufferState.colorFormat), m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y());
 	tcu::clear(m_refImage.getAccess(), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
 
+	const rr::MultisamplePixelBufferAccess	referenceColorBuffer = rr::MultisamplePixelBufferAccess::fromSinglesampleAccess(m_refImage.getAccess());
+	const rr::RenderTarget					renderTarget(referenceColorBuffer);
+	const rr::Renderer						renderer;
+	for(deUint32 objectNdx=0; objectNdx < m_drawCallData.size(); objectNdx++)
 	{
-		const rr::Program						program(&m_vertexShader, &m_fragmentShader);
-		const rr::MultisamplePixelBufferAccess	referenceColorBuffer = rr::MultisamplePixelBufferAccess::fromSinglesampleAccess(m_refImage.getAccess());
-		const rr::RenderTarget					renderTarget(referenceColorBuffer);
-		const rr::RenderState					renderState((rr::ViewportState(referenceColorBuffer)), m_drawState.subpixelBits, rr::VIEWPORTORIENTATION_UPPER_LEFT);
-		const rr::Renderer						renderer;
+		const rr::RenderState					renderState((rr::ViewportState(referenceColorBuffer)), m_pipelineStates[objectNdx].subpixelBits, rr::VIEWPORTORIENTATION_UPPER_LEFT);
+		const rr::Program						program(m_vertexShaders[objectNdx].get(), m_fragmentShaders[objectNdx].get());
 		const rr::VertexAttrib					vertexAttrib[] =
 		{
-			rr::VertexAttrib(rr::VERTEXATTRIBTYPE_FLOAT, 4, sizeof(tcu::Vec4), 0, &m_drawCallData.vertices[0])
+			rr::VertexAttrib(rr::VERTEXATTRIBTYPE_FLOAT, 4, sizeof(tcu::Vec4), 0, m_drawCallData[objectNdx].vertices.data())
 		};
 
 		renderer.draw(rr::DrawCommand(	renderState,
@@ -150,10 +164,9 @@
 										program,
 										DE_LENGTH_OF_ARRAY(vertexAttrib),
 										&vertexAttrib[0],
-										rr::PrimitiveList(mapVkPrimitiveToRRPrimitive(m_drawState.topology), (int)m_drawCallData.vertices.size(), 0)));
+										rr::PrimitiveList(mapVkPrimitiveToRRPrimitive(m_drawCallData[objectNdx].topology), (int)m_drawCallData[objectNdx].vertices.size(), 0)));
 
 	}
-
 }
 
 tcu::ConstPixelBufferAccess ReferenceDrawContext::getColorPixels (void) const
@@ -165,55 +178,55 @@
 										m_refImage.getAccess().getDataPtr());
 }
 
-VulkanDrawContext::VulkanDrawContext (Context&				context,
-									  const DrawState&		drawState,
-									  const DrawCallData&	drawCallData,
-									  const VulkanProgram&	vulkanProgram)
-	: DrawContext	(drawState, drawCallData)
+VulkanShader::VulkanShader(const vk::VkShaderStageFlagBits stage_, const vk::ProgramBinary& binary_)
+	: stage(stage_)
+	, binary(&binary_)
+{
+}
+
+VulkanProgram::VulkanProgram(const std::vector<VulkanShader>& shaders_)
+	: shaders(shaders_)
+{
+}
+
+VulkanDrawContext::VulkanDrawContext (Context&					context,
+									  const FrameBufferState&	frameBufferState)
+	: DrawContext	(frameBufferState)
 	, m_context		(context)
-	, m_program		(vulkanProgram)
 {
 	const DeviceInterface&	vk						= m_context.getDeviceInterface();
 	const VkDevice			device					= m_context.getDevice();
 	Allocator&				allocator				= m_context.getDefaultAllocator();
-	VkImageSubresourceRange	colorSubresourceRange;
-	Move<VkSampler>			sampler;
-
-	// Command buffer
-	{
-		m_cmdPool			= makeCommandPool(vk, device, m_context.getUniversalQueueFamilyIndex());
-		m_cmdBuffer			= makeCommandBuffer(vk, device, *m_cmdPool);
-	}
 
 	// Color attachment image
 	{
-		const VkImageUsageFlags usage			= VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
-		colorSubresourceRange					= makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+		const VkImageUsageFlags usage					= VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+		VkImageSubresourceRange	colorSubresourceRange	= makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
 		const VkImageCreateInfo	imageCreateInfo	=
 		{
-			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,										// VkStructureType			sType;
-			DE_NULL,																	// const void*				pNext;
-			(VkImageCreateFlags)0,														// VkImageCreateFlags		flags;
-			VK_IMAGE_TYPE_2D,															// VkImageType				imageType;
-			m_drawState.colorFormat,													// VkFormat					format;
-			makeExtent3D(m_drawState.renderSize.x(), m_drawState.renderSize.y(), 1u),	// VkExtent3D				extent;
-			1u,																			// uint32_t					mipLevels;
-			1u,																			// uint32_t					arrayLayers;
-			(VkSampleCountFlagBits)m_drawState.numSamples,								// VkSampleCountFlagBits	samples;
-			VK_IMAGE_TILING_OPTIMAL,													// VkImageTiling			tiling;
-			usage,																		// VkImageUsageFlags		usage;
-			VK_SHARING_MODE_EXCLUSIVE,													// VkSharingMode			sharingMode;
-			0u,																			// uint32_t					queueFamilyIndexCount;
-			DE_NULL,																	// const uint32_t*			pQueueFamilyIndices;
-			VK_IMAGE_LAYOUT_UNDEFINED,													// VkImageLayout			initialLayout;
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,													// VkStructureType			sType;
+			DE_NULL,																				// const void*				pNext;
+			(VkImageCreateFlags)0,																	// VkImageCreateFlags		flags;
+			VK_IMAGE_TYPE_2D,																		// VkImageType				imageType;
+			m_framebufferState.colorFormat,															// VkFormat					format;
+			makeExtent3D(m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y(), 1u),	// VkExtent3D				extent;
+			1u,																						// uint32_t					mipLevels;
+			1u,																						// uint32_t					arrayLayers;
+			(VkSampleCountFlagBits)m_framebufferState.numSamples,									// VkSampleCountFlagBits	samples;
+			VK_IMAGE_TILING_OPTIMAL,																// VkImageTiling			tiling;
+			usage,																					// VkImageUsageFlags		usage;
+			VK_SHARING_MODE_EXCLUSIVE,																// VkSharingMode			sharingMode;
+			0u,																						// uint32_t					queueFamilyIndexCount;
+			DE_NULL,																				// const uint32_t*			pQueueFamilyIndices;
+			VK_IMAGE_LAYOUT_UNDEFINED,																// VkImageLayout			initialLayout;
 		};
 
-		m_colorImage = MovePtr<ImageWithMemory>(new ImageWithMemory(vk, device, allocator, imageCreateInfo, MemoryRequirement::Any));
-		m_colorImageView = makeImageView(vk, device, **m_colorImage, VK_IMAGE_VIEW_TYPE_2D, m_drawState.colorFormat, colorSubresourceRange);
+		m_colorImage		= MovePtr<ImageWithMemory>(new ImageWithMemory(vk, device, allocator, imageCreateInfo, MemoryRequirement::Any));
+		m_colorImageView	= makeImageView(vk, device, **m_colorImage, VK_IMAGE_VIEW_TYPE_2D, m_framebufferState.colorFormat, colorSubresourceRange);
 
 		// Buffer to copy attachment data after rendering
 
-		const VkDeviceSize bitmapSize = tcu::getPixelSize(mapVkFormat(m_drawState.colorFormat)) * m_drawState.renderSize.x() * m_drawState.renderSize.y();
+		const VkDeviceSize bitmapSize = tcu::getPixelSize(mapVkFormat(m_framebufferState.colorFormat)) * m_framebufferState.renderSize.x() * m_framebufferState.renderSize.y();
 		m_colorAttachmentBuffer = MovePtr<BufferWithMemory>(new BufferWithMemory(
 			vk, device, allocator, makeBufferCreateInfo(bitmapSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT), MemoryRequirement::HostVisible));
 
@@ -224,20 +237,35 @@
 		}
 	}
 
-	// Vertex buffer
+	// Depth buffer - create image when user didn't deliver its own, but configured depthFormat
+	vk::VkImageView depthImageView = m_framebufferState.depthImageView;
+	if (!m_framebufferState.depthImageView && m_framebufferState.depthFormat != VK_FORMAT_UNDEFINED)
 	{
-		const VkDeviceSize bufferSize = m_drawCallData.vertices.size() * sizeof(m_drawCallData.vertices[0]);
-		m_vertexBuffer = MovePtr<BufferWithMemory>(new BufferWithMemory(
-			vk, device, allocator, makeBufferCreateInfo(bufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible));
+		const VkImageUsageFlags usage					= VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
+		VkImageSubresourceRange	depthSubresourceRange	= makeImageSubresourceRange(VK_IMAGE_ASPECT_DEPTH_BIT, 0u, 1u, 0u, 1u);
 
-		const Allocation& alloc = m_vertexBuffer->getAllocation();
-		deMemcpy(alloc.getHostPtr(), &m_drawCallData.vertices[0], (size_t)bufferSize);
-		flushAlloc(vk, device, alloc);
-	}
+		const VkImageCreateInfo depthImageCreateInfo =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,													// VkStructureType			sType
+			DE_NULL,																				// const void*				pNext
+			(VkImageCreateFlags)0,																	// VkImageCreateFlags		flags
+			VK_IMAGE_TYPE_2D,																		// VkIMageType				imageType
+			m_framebufferState.depthFormat,															// VkFormat					format
+			makeExtent3D(m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y(), 1u),	// VkExtent3D				extent;
+			1u,																						// uint32_t					mipLevels
+			1u,																						// uint32_t					arrayLayers
+			(VkSampleCountFlagBits)m_framebufferState.numSamples,									// VkSampleCountFlagsBits	samples
+			VK_IMAGE_TILING_OPTIMAL,																// VkImageTiling			tiling
+			usage,																					// VkImageUsageFlags		usage
+			VK_SHARING_MODE_EXCLUSIVE,																// VkSharingMode			sharingMode
+			0u,																						// uint32_t					queueFamilyIndexCount
+			DE_NULL,																				// const uint32_t			pQueueFamilyIndices
+			VK_IMAGE_LAYOUT_UNDEFINED																// VkImageLayout			initialLayout
+		};
 
-	// bind descriptor sets
-	{
-		m_pipelineLayout = makePipelineLayout(vk, device, vulkanProgram.descriptorSetLayout);
+		m_depthImage		= MovePtr<ImageWithMemory>(new ImageWithMemory(vk, device, allocator, depthImageCreateInfo, MemoryRequirement::Any));
+		m_depthImageView	= makeImageView(vk, device, **m_depthImage, VK_IMAGE_VIEW_TYPE_2D, m_framebufferState.depthFormat, depthSubresourceRange);
+		depthImageView		= *m_depthImageView;
 	}
 
 	// Renderpass
@@ -246,27 +274,26 @@
 		const VkAttachmentDescription attachDescriptors[] =
 		{
 			{
-				(VkAttachmentDescriptionFlags)0,					// VkAttachmentDescriptionFlags		flags;
-				m_drawState.colorFormat,							// VkFormat							format;
-				(VkSampleCountFlagBits)m_drawState.numSamples,		// VkSampleCountFlagBits			samples;
-				VK_ATTACHMENT_LOAD_OP_CLEAR,						// VkAttachmentLoadOp				loadOp;
-				VK_ATTACHMENT_STORE_OP_STORE,						// VkAttachmentStoreOp				storeOp;
-				VK_ATTACHMENT_LOAD_OP_DONT_CARE,					// VkAttachmentLoadOp				stencilLoadOp;
-				VK_ATTACHMENT_STORE_OP_DONT_CARE,					// VkAttachmentStoreOp				stencilStoreOp;
-				VK_IMAGE_LAYOUT_UNDEFINED,							// VkImageLayout					initialLayout;
-				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,			// VkImageLayout					finalLayout;
+				(VkAttachmentDescriptionFlags)0,						// VkAttachmentDescriptionFlags		flags;
+				m_framebufferState.colorFormat,							// VkFormat							format;
+				(VkSampleCountFlagBits)m_framebufferState.numSamples,	// VkSampleCountFlagBits			samples;
+				VK_ATTACHMENT_LOAD_OP_CLEAR,							// VkAttachmentLoadOp				loadOp;
+				VK_ATTACHMENT_STORE_OP_STORE,							// VkAttachmentStoreOp				storeOp;
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE,						// VkAttachmentLoadOp				stencilLoadOp;
+				VK_ATTACHMENT_STORE_OP_DONT_CARE,						// VkAttachmentStoreOp				stencilStoreOp;
+				VK_IMAGE_LAYOUT_UNDEFINED,								// VkImageLayout					initialLayout;
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,				// VkImageLayout					finalLayout;
 			},
 			{
-				(VkAttachmentDescriptionFlags)0,					// VkAttachmentDescriptionFlags		flags
-				m_drawState.depthFormat,							// VkFormat							format
-				(VkSampleCountFlagBits)m_drawState.numSamples,		// VkSampleCountFlagBits			samples
-				VK_ATTACHMENT_LOAD_OP_CLEAR,						// VkAttachmentLoadOp				loadOp
-				VK_ATTACHMENT_STORE_OP_STORE,						// VkAttachmentStoreOp				storeOp
-				VK_ATTACHMENT_LOAD_OP_DONT_CARE,					// VkAttachmentLoadOp				stencilLoadOp
-				VK_ATTACHMENT_STORE_OP_DONT_CARE,					// VkAttachmentStoreOp				stencilStoreOp
-				VK_IMAGE_LAYOUT_UNDEFINED,							// VkImageLayout					initialLayout
-				VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,	// VkImageLayout					finalLayout
-
+				(VkAttachmentDescriptionFlags)0,						// VkAttachmentDescriptionFlags		flags
+				m_framebufferState.depthFormat,							// VkFormat							format
+				(VkSampleCountFlagBits)m_framebufferState.numSamples,	// VkSampleCountFlagBits			samples
+				VK_ATTACHMENT_LOAD_OP_CLEAR,							// VkAttachmentLoadOp				loadOp
+				VK_ATTACHMENT_STORE_OP_STORE,							// VkAttachmentStoreOp				storeOp
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE,						// VkAttachmentLoadOp				stencilLoadOp
+				VK_ATTACHMENT_STORE_OP_DONT_CARE,						// VkAttachmentStoreOp				stencilStoreOp
+				VK_IMAGE_LAYOUT_UNDEFINED,								// VkImageLayout					initialLayout
+				VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,		// VkImageLayout					finalLayout
 			}
 		};
 
@@ -287,10 +314,13 @@
 		};
 
 		attachmentDescriptions.push_back(attachDescriptors[0]);
-		if (!!vulkanProgram.depthImageView)
+		deUint32 depthReferenceNdx = 2;
+		if (depthImageView != 0)
+		{
 			attachmentDescriptions.push_back(attachDescriptors[1]);
+			depthReferenceNdx = 1;
+		}
 
-		deUint32 depthReferenceNdx = !!vulkanProgram.depthImageView ? 1 : 2;
 		const VkSubpassDescription subpassDescription =
 		{
 			(VkSubpassDescriptionFlags)0,						// VkSubpassDescriptionFlags		flags;
@@ -311,7 +341,7 @@
 			DE_NULL,											// const void*						pNext;
 			(VkRenderPassCreateFlags)0,							// VkRenderPassCreateFlags			flags;
 			(deUint32)attachmentDescriptions.size(),			// deUint32							attachmentCount;
-			&attachmentDescriptions[0],							// const VkAttachmentDescription*	pAttachments;
+			attachmentDescriptions.data(),						// const VkAttachmentDescription*	pAttachments;
 			1u,													// deUint32							subpassCount;
 			&subpassDescription,								// const VkSubpassDescription*		pSubpasses;
 			0u,													// deUint32							dependencyCount;
@@ -326,8 +356,8 @@
 		std::vector<VkImageView>	attachmentBindInfos;
 		deUint32					numAttachments;
 		attachmentBindInfos.push_back(*m_colorImageView);
-		if (!!vulkanProgram.depthImageView)
-			attachmentBindInfos.push_back(vulkanProgram.depthImageView);
+		if (depthImageView!=0)
+			attachmentBindInfos.push_back(depthImageView);
 
 		numAttachments = (deUint32)(attachmentBindInfos.size());
 		const VkFramebufferCreateInfo framebufferInfo = {
@@ -337,14 +367,45 @@
 			*m_renderPass,									// VkRenderPass							renderPass;
 			numAttachments,									// uint32_t								attachmentCount;
 			&attachmentBindInfos[0],						// const VkImageView*					pAttachments;
-			m_drawState.renderSize.x(),						// uint32_t								width;
-			m_drawState.renderSize.y(),						// uint32_t								height;
+			m_framebufferState.renderSize.x(),				// uint32_t								width;
+			m_framebufferState.renderSize.y(),				// uint32_t								height;
 			1u,												// uint32_t								layers;
 		};
 
 		m_framebuffer = createFramebuffer(vk, device, &framebufferInfo);
 	}
 
+	// Command buffer
+	m_cmdPool	= makeCommandPool(vk, device, m_context.getUniversalQueueFamilyIndex());
+	m_cmdBuffer	= makeCommandBuffer(vk, device, *m_cmdPool);
+}
+
+VulkanDrawContext::~VulkanDrawContext (void)
+{
+}
+
+void VulkanDrawContext::registerDrawObject(const PipelineState& pipelineState, const VulkanProgram& vulkanProgram, const DrawCallData& drawCallData)
+{
+	const DeviceInterface&	vk			= m_context.getDeviceInterface();
+	const VkDevice			device		= m_context.getDevice();
+	Allocator&				allocator	= m_context.getDefaultAllocator();
+	auto					object		= std::make_shared<RenderObject>();
+
+	// Vertex buffer
+	{
+		const VkDeviceSize bufferSize	= drawCallData.vertices.size() * sizeof(drawCallData.vertices[0]);
+		object->vertexBuffer				= MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, makeBufferCreateInfo(bufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible));
+		object->vertexCount				= static_cast<deUint32>(drawCallData.vertices.size());
+		const Allocation& alloc			= object->vertexBuffer->getAllocation();
+		deMemcpy(alloc.getHostPtr(), &drawCallData.vertices[0], (size_t)bufferSize);
+		flushAlloc(vk, device, alloc);
+	}
+
+	// bind descriptor sets
+	{
+		object->pipelineLayout = makePipelineLayout(vk, device, vulkanProgram.descriptorSetLayout);
+	}
+
 	// Graphics pipeline
 	{
 		VkShaderModule	vertShader			= DE_NULL;
@@ -353,17 +414,17 @@
 		VkShaderModule	geomShader			= DE_NULL;
 		VkShaderModule	fragShader			= DE_NULL;
 
-		DE_ASSERT(m_drawState.topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST || m_drawState.numPatchControlPoints > 0);
+		DE_ASSERT(drawCallData.topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST || pipelineState.numPatchControlPoints > 0);
 
-		const std::vector<VkViewport>	viewports	(1, makeViewport(m_drawState.renderSize));
-		const std::vector<VkRect2D>		scissors	(1, makeRect2D(m_drawState.renderSize));
+		const std::vector<VkViewport>	viewports(1, makeViewport(m_framebufferState.renderSize));
+		const std::vector<VkRect2D>		scissors(1, makeRect2D(m_framebufferState.renderSize));
 
 		VkPipelineRasterizationStateCreateInfo pipelineRasterizationStateInfo =
 		{
 			VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,		// VkStructureType							sType;
 			DE_NULL,														// const void*								pNext;
 			(VkPipelineRasterizationStateCreateFlags)0,						// VkPipelineRasterizationStateCreateFlags	flags;
-			m_drawState.depthClampEnable,									// VkBool32									depthClampEnable;
+			pipelineState.depthClampEnable,									// VkBool32									depthClampEnable;
 			VK_FALSE,														// VkBool32									rasterizerDiscardEnable;
 			VK_POLYGON_MODE_FILL,											// VkPolygonMode							polygonMode;
 			VK_CULL_MODE_NONE,												// VkCullModeFlags							cullMode;
@@ -372,7 +433,7 @@
 			0.0f,															// float									depthBiasConstantFactor;
 			0.0f,															// float									depthBiasClamp;
 			0.0f,															// float									depthBiasSlopeFactor;
-			m_drawState.lineWidth,											// float									lineWidth;
+			pipelineState.lineWidth,										// float									lineWidth;
 		};
 
 		VkPipelineRasterizationDepthClipStateCreateInfoEXT pipelineRasterizationDepthCliptateInfo =
@@ -380,9 +441,9 @@
 			VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,	// VkStructureType										sType;
 			DE_NULL,																	// const void*											pNext;
 			(VkPipelineRasterizationDepthClipStateCreateFlagsEXT)0,						// VkPipelineRasterizationDepthClipStateCreateFlagsEXT	flags;
-			m_drawState.depthClipEnable,												// VkBool32												depthClipEnable;
+			pipelineState.depthClipEnable,												// VkBool32												depthClipEnable;
 		};
-		if (m_drawState.explicitDepthClipEnable)
+		if (pipelineState.explicitDepthClipEnable)
 			pipelineRasterizationStateInfo.pNext = &pipelineRasterizationDepthCliptateInfo;
 
 		const VkPipelineMultisampleStateCreateInfo pipelineMultisampleStateInfo =
@@ -390,9 +451,9 @@
 			VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	// VkStructureType							sType;
 			DE_NULL,													// const void*								pNext;
 			(VkPipelineMultisampleStateCreateFlags)0,					// VkPipelineMultisampleStateCreateFlags	flags;
-			(VkSampleCountFlagBits)m_drawState.numSamples,				// VkSampleCountFlagBits					rasterizationSamples;
-			m_drawState.sampleShadingEnable ? VK_TRUE : VK_FALSE,		// VkBool32									sampleShadingEnable;
-			m_drawState.sampleShadingEnable ? 1.0f : 0.0f,				// float									minSampleShading;
+			(VkSampleCountFlagBits)m_framebufferState.numSamples,		// VkSampleCountFlagBits					rasterizationSamples;
+			pipelineState.sampleShadingEnable ? VK_TRUE : VK_FALSE,		// VkBool32									sampleShadingEnable;
+			pipelineState.sampleShadingEnable ? 1.0f : 0.0f,			// float									minSampleShading;
 			DE_NULL,													// const VkSampleMask*						pSampleMask;
 			VK_FALSE,													// VkBool32									alphaToCoverageEnable;
 			VK_FALSE													// VkBool32									alphaToOneEnable;
@@ -407,7 +468,7 @@
 			0u,						// write mask
 			0u);					// reference
 
-		if (m_drawState.depthBoundsTestEnable && !context.getDeviceFeatures().depthBounds)
+		if (pipelineState.depthBoundsTestEnable && !m_context.getDeviceFeatures().depthBounds)
 			TCU_THROW(NotSupportedError, "depthBounds not supported");
 
 		const VkPipelineDepthStencilStateCreateInfo pipelineDepthStencilStateInfo =
@@ -415,10 +476,10 @@
 			VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,	// VkStructureType							sType;
 			DE_NULL,													// const void*								pNext;
 			(VkPipelineDepthStencilStateCreateFlags)0,					// VkPipelineDepthStencilStateCreateFlags	flags;
-			m_drawState.depthTestEnable,								// VkBool32									depthTestEnable;
-			m_drawState.depthWriteEnable,								// VkBool32									depthWriteEnable;
-			mapCompareOp(m_drawState.compareOp),						// VkCompareOp								depthCompareOp;
-			m_drawState.depthBoundsTestEnable,							// VkBool32									depthBoundsTestEnable
+			pipelineState.depthTestEnable,								// VkBool32									depthTestEnable;
+			pipelineState.depthWriteEnable,								// VkBool32									depthWriteEnable;
+			mapCompareOp(pipelineState.compareOp),						// VkCompareOp								depthCompareOp;
+			pipelineState.depthBoundsTestEnable,						// VkBool32									depthBoundsTestEnable
 			VK_FALSE,													// VkBool32									stencilTestEnable;
 			stencilOpState,												// VkStencilOpState							front;
 			stencilOpState,												// VkStencilOpState							back;
@@ -429,7 +490,7 @@
 		const VkColorComponentFlags colorComponentsAll = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
 		const VkPipelineColorBlendAttachmentState pipelineColorBlendAttachmentState =
 		{
-			m_drawState.blendEnable,			// VkBool32					blendEnable;
+			pipelineState.blendEnable,			// VkBool32					blendEnable;
 			VK_BLEND_FACTOR_SRC_ALPHA,			// VkBlendFactor			srcColorBlendFactor;
 			VK_BLEND_FACTOR_ONE,				// VkBlendFactor			dstColorBlendFactor;
 			VK_BLEND_OP_ADD,					// VkBlendOp				colorBlendOp;
@@ -453,77 +514,91 @@
 
 		VkShaderStageFlags stageFlags = (VkShaderStageFlags)0;
 
-		DE_ASSERT(m_program.shaders.size() <= MAX_NUM_SHADER_MODULES);
-		for (deUint32 shaderNdx = 0; shaderNdx < m_program.shaders.size(); ++shaderNdx)
+		DE_ASSERT(vulkanProgram.shaders.size() <= RenderObject::MAX_NUM_SHADER_MODULES);
+		for (deUint32 shaderNdx = 0; shaderNdx < vulkanProgram.shaders.size(); ++shaderNdx)
 		{
-			m_shaderModules[shaderNdx] = createShaderModule(vk, device, *m_program.shaders[shaderNdx].binary, (VkShaderModuleCreateFlags)0);
+			object->shaderModules[shaderNdx] = createShaderModule(vk, device, *vulkanProgram.shaders[shaderNdx].binary, (VkShaderModuleCreateFlags)0);
 
-			stageFlags |= m_program.shaders[shaderNdx].stage;
+			stageFlags |= vulkanProgram.shaders[shaderNdx].stage;
 
-			switch(m_program.shaders[shaderNdx].stage)
+			switch (vulkanProgram.shaders[shaderNdx].stage)
 			{
-				case VK_SHADER_STAGE_VERTEX_BIT:
-					vertShader = *m_shaderModules[shaderNdx];
-					break;
-				case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
-					tessControlShader = *m_shaderModules[shaderNdx];
-					break;
-				case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
-					tessEvalShader = *m_shaderModules[shaderNdx];
-					break;
-				case VK_SHADER_STAGE_GEOMETRY_BIT:
-					geomShader = *m_shaderModules[shaderNdx];
-					break;
-				default:
-					DE_ASSERT(m_program.shaders[shaderNdx].stage == VK_SHADER_STAGE_FRAGMENT_BIT);
-					fragShader = *m_shaderModules[shaderNdx];
-					break;
+			case VK_SHADER_STAGE_VERTEX_BIT:
+				vertShader = *object->shaderModules[shaderNdx];
+				break;
+			case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
+				tessControlShader = *object->shaderModules[shaderNdx];
+				break;
+			case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
+				tessEvalShader = *object->shaderModules[shaderNdx];
+				break;
+			case VK_SHADER_STAGE_GEOMETRY_BIT:
+				geomShader = *object->shaderModules[shaderNdx];
+				break;
+			default:
+				DE_ASSERT(vulkanProgram.shaders[shaderNdx].stage == VK_SHADER_STAGE_FRAGMENT_BIT);
+				fragShader = *object->shaderModules[shaderNdx];
+				break;
 			}
 		}
 
 		DE_ASSERT(
-			(m_drawState.topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) ||
+			(drawCallData.topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) ||
 			(stageFlags & (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)));
 
-		m_pipeline = makeGraphicsPipeline(vk,									// const DeviceInterface&                        vk
-										  device,								// const VkDevice                                device
-										  *m_pipelineLayout,					// const VkPipelineLayout                        pipelineLayout
-										  vertShader,							// const VkShaderModule                          vertexShaderModule
-										  tessControlShader,					// const VkShaderModule                          tessellationControlShaderModule
-										  tessEvalShader,						// const VkShaderModule                          tessellationEvalShaderModule
-										  geomShader,							// const VkShaderModule                          geometryShaderModule
-										  fragShader,							// const VkShaderModule                          fragmentShaderModule
-										  *m_renderPass,						// const VkRenderPass                            renderPass
-										  viewports,							// const std::vector<VkViewport>&                viewports
-										  scissors,								// const std::vector<VkRect2D>&                  scissors
-										  m_drawState.topology,					// const VkPrimitiveTopology                     topology
-										  0u,									// const deUint32                                subpass
-										  m_drawState.numPatchControlPoints,	// const deUint32                                patchControlPoints
-										  DE_NULL,								// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
-										  &pipelineRasterizationStateInfo,		// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
-										  &pipelineMultisampleStateInfo,		// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
-										  &pipelineDepthStencilStateInfo,		// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
-										  &pipelineColorBlendStateInfo);		// const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
+		object->pipeline = makeGraphicsPipeline(	vk,										// const DeviceInterface&                        vk
+												device,									// const VkDevice                                device
+												*(object->pipelineLayout),					// const VkPipelineLayout                        pipelineLayout
+												vertShader,								// const VkShaderModule                          vertexShaderModule
+												tessControlShader,						// const VkShaderModule                          tessellationControlShaderModule
+												tessEvalShader,							// const VkShaderModule                          tessellationEvalShaderModule
+												geomShader,								// const VkShaderModule                          geometryShaderModule
+												fragShader,								// const VkShaderModule                          fragmentShaderModule
+												*m_renderPass,							// const VkRenderPass                            renderPass
+												viewports,								// const std::vector<VkViewport>&                viewports
+												scissors,								// const std::vector<VkRect2D>&                  scissors
+												drawCallData.topology,					// const VkPrimitiveTopology                     topology
+												0u,										// const deUint32                                subpass
+												pipelineState.numPatchControlPoints,	// const deUint32                                patchControlPoints
+												DE_NULL,								// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
+												&pipelineRasterizationStateInfo,		// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+												&pipelineMultisampleStateInfo,			// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
+												&pipelineDepthStencilStateInfo,			// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
+												&pipelineColorBlendStateInfo);			// const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
+		object->descriptorSet		= vulkanProgram.descriptorSet;
+		object->descriptorSetLayout	= vulkanProgram.descriptorSetLayout;
 	}
+	m_renderObjects.push_back(object);
+}
+
+void VulkanDrawContext::draw (void)
+{
+	const DeviceInterface&	vk			= m_context.getDeviceInterface();
+	const VkDevice			device		= m_context.getDevice();
+	const VkQueue			queue		= m_context.getUniversalQueue();
+	Allocator&				allocator	= m_context.getDefaultAllocator();
+	tcu::TestLog&			log			= m_context.getTestContext().getLog();
 
 	// Record commands
 	{
 		const VkDeviceSize zeroOffset = 0ull;
 
 		beginCommandBuffer(vk, *m_cmdBuffer);
-		if (!!vulkanProgram.descriptorSet)
-			vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, 1u, &vulkanProgram.descriptorSet, 0u, DE_NULL);
 
 		// Begin render pass
-		if (!!vulkanProgram.depthImageView)
-			beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, m_drawState.renderSize.x(), m_drawState.renderSize.y()), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f), 0.0f, 0);
+		if (!!m_framebufferState.depthImageView || !!*m_depthImageView)
+			beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y()), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f), 0.0f, 0);
 		else
-			beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, m_drawState.renderSize.x(), m_drawState.renderSize.y()), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
+			beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y()), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
 
-		vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
-		vk.cmdBindVertexBuffers(*m_cmdBuffer, 0u, 1u, &(**m_vertexBuffer), &zeroOffset);
-
-		vk.cmdDraw(*m_cmdBuffer, static_cast<deUint32>(m_drawCallData.vertices.size()), 1u, 0u, 0u);
+		for (const auto& object : m_renderObjects)
+		{
+			if (!!object->descriptorSet)
+				vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *(object->pipelineLayout), 0u, 1u, &(object->descriptorSet), 0u, DE_NULL);
+			vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *(object->pipeline));
+			vk.cmdBindVertexBuffers(*m_cmdBuffer, 0u, 1u, &(**(object->vertexBuffer)), &zeroOffset);
+			vk.cmdDraw(*m_cmdBuffer, static_cast<deUint32>(object->vertexCount), 1u, 0u, 0u);
+		}
 		endRenderPass(vk, *m_cmdBuffer);
 
 		// Barrier: draw -> copy from image
@@ -531,7 +606,7 @@
 			const VkImageMemoryBarrier barrier = makeImageMemoryBarrier(
 				VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
 				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-				**m_colorImage, colorSubresourceRange);
+				**m_colorImage, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u));
 
 			vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0,
 				0u, DE_NULL, 0u, DE_NULL, 1u, &barrier);
@@ -539,7 +614,7 @@
 
 		// Resolve multisample image
 		{
-			if (m_drawState.numSamples != VK_SAMPLE_COUNT_1_BIT)
+			if (m_framebufferState.numSamples != VK_SAMPLE_COUNT_1_BIT)
 			{
 				const VkImageResolve imageResolve =
 				{
@@ -547,7 +622,7 @@
 					{ 0, 0, 0},
 					makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u),
 					{ 0, 0, 0},
-					makeExtent3D(m_drawState.renderSize.x(), m_drawState.renderSize.y(), 1u)
+					makeExtent3D(m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y(), 1u)
 				};
 
 				const VkImageCreateInfo resolveImageCreateInfo =
@@ -556,9 +631,9 @@
 					DE_NULL,											// const void*				pNext
 					(VkImageCreateFlags)0,								// VkImageCreateFlags		flags
 					VK_IMAGE_TYPE_2D,									// VkImageType				imageType
-					m_drawState.colorFormat,							// VkFormat					format
-					makeExtent3D(m_drawState.renderSize.x(),			// VkExtent3D				extent;
-							m_drawState.renderSize.y(), 1u),
+					m_framebufferState.colorFormat,						// VkFormat					format
+					makeExtent3D(m_framebufferState.renderSize.x(),		// VkExtent3D				extent;
+							m_framebufferState.renderSize.y(), 1u),
 					1u,													// uint32_t					mipLevels
 					1u,													// uint32_t					arrayLayers
 					VK_SAMPLE_COUNT_1_BIT,								// VkSampleCountFlagBits	samples
@@ -576,7 +651,7 @@
 				const VkImageMemoryBarrier resolveBarrier = makeImageMemoryBarrier(
 						0u, VK_ACCESS_TRANSFER_READ_BIT,
 						VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-						**m_resolveImage, colorSubresourceRange);
+						**m_resolveImage, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u));
 
 				vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0,
 						0u, DE_NULL, 0u, DE_NULL, 1u, &resolveBarrier);
@@ -587,7 +662,7 @@
 				const VkImageMemoryBarrier barrier = makeImageMemoryBarrier(
 					VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
 					VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-					**m_resolveImage, colorSubresourceRange);
+					**m_resolveImage, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u));
 
 				vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0,
 					0u, DE_NULL, 0u, DE_NULL, 1u, &barrier);
@@ -596,7 +671,7 @@
 				m_resolveImage = m_colorImage;
 
 			const VkBufferImageCopy copyRegion = makeBufferImageCopy(
-				makeExtent3D(m_drawState.renderSize.x(), m_drawState.renderSize.y(), 1u),
+				makeExtent3D(m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y(), 1u),
 				makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u));
 			vk.cmdCopyImageToBuffer(*m_cmdBuffer, **m_resolveImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, **m_colorAttachmentBuffer, 1u, &copyRegion);
 		}
@@ -613,18 +688,7 @@
 
 		endCommandBuffer(vk, *m_cmdBuffer);
 	}
-}
 
-VulkanDrawContext::~VulkanDrawContext (void)
-{
-}
-
-void VulkanDrawContext::draw (void)
-{
-	const DeviceInterface&	vk			= m_context.getDeviceInterface();
-	const VkDevice			device		= m_context.getDevice();
-	const VkQueue			queue		= m_context.getUniversalQueue();
-	tcu::TestLog&			log			= m_context.getTestContext().getLog();
 
 	submitCommandsAndWait(vk, device, queue, *m_cmdBuffer);
 
@@ -639,7 +703,7 @@
 	const Allocation& alloc = m_colorAttachmentBuffer->getAllocation();
 	invalidateAlloc(vk, device, alloc);
 
-	return tcu::ConstPixelBufferAccess(mapVkFormat(m_drawState.colorFormat), m_drawState.renderSize.x(), m_drawState.renderSize.y(), 1u, alloc.getHostPtr());
+	return tcu::ConstPixelBufferAccess(mapVkFormat(m_framebufferState.colorFormat), m_framebufferState.renderSize.x(), m_framebufferState.renderSize.y(), 1u, alloc.getHostPtr());
 }
 } // drawutil
 } // vkt
diff --git a/external/vulkancts/modules/vulkan/util/vktDrawUtil.hpp b/external/vulkancts/modules/vulkan/util/vktDrawUtil.hpp
index 18d812c..025e902 100644
--- a/external/vulkancts/modules/vulkan/util/vktDrawUtil.hpp
+++ b/external/vulkancts/modules/vulkan/util/vktDrawUtil.hpp
@@ -34,45 +34,53 @@
 #include "vktTestCase.hpp"
 #include "vkTypeUtil.hpp"
 #include "rrRenderer.hpp"
+#include <memory>
 
 namespace vkt
 {
 namespace drawutil
 {
 
-struct DrawState
+struct FrameBufferState
 {
-	vk::VkPrimitiveTopology			topology;
-	vk::VkFormat					colorFormat;
-	vk::VkFormat					depthFormat;
+	FrameBufferState()										= delete;
+	FrameBufferState(deUint32 renderWidth_, deUint32 renderHeight_);
+
+	vk::VkFormat					colorFormat				= vk::VK_FORMAT_R8G8B8A8_UNORM;
+	vk::VkFormat					depthFormat				= vk::VK_FORMAT_UNDEFINED;
 	tcu::UVec2						renderSize;
-	bool							depthClampEnable;
-	bool							depthTestEnable;
-	bool							depthWriteEnable;
-	rr::TestFunc					compareOp;
-	bool							depthBoundsTestEnable;
-	bool							blendEnable;
-	float							lineWidth;
-	deUint32						numPatchControlPoints;
-	deUint32						numSamples;
-	bool							sampleShadingEnable;
+	deUint32						numSamples				= vk::VK_SAMPLE_COUNT_1_BIT;
+	vk::VkImageView					depthImageView			= 0;
+};
+
+struct PipelineState
+{
+	PipelineState()											= delete;
+	PipelineState(const int subpixelBits);
+
+	bool							depthClampEnable		= false;
+	bool							depthTestEnable			= false;
+	bool							depthWriteEnable		= false;
+	rr::TestFunc					compareOp				= rr::TESTFUNC_LESS;
+	bool							depthBoundsTestEnable	= false;
+	bool							blendEnable				= false;
+	float							lineWidth				= 1.0;
+	deUint32						numPatchControlPoints	= 0;
+	bool							sampleShadingEnable		= false;
 	int								subpixelBits;
 
 	// VK_EXT_depth_clip_enable
-	bool							explicitDepthClipEnable;
-	bool							depthClipEnable;
-
-	DrawState (const vk::VkPrimitiveTopology topology_, deUint32 renderWidth_, deUint32 renderHeight_, const int subpixelBits);
+	bool							explicitDepthClipEnable	= false;
+	bool							depthClipEnable			= false;
 };
 
 struct DrawCallData
 {
-	const std::vector<tcu::Vec4>&	vertices;
+	DrawCallData()											= delete;
+	DrawCallData(const vk::VkPrimitiveTopology topology_, const std::vector<tcu::Vec4>&	vertices_);
 
-	DrawCallData		(const std::vector<tcu::Vec4>&	vertices_)
-		: vertices		(vertices_)
-	{
-	}
+	vk::VkPrimitiveTopology			topology;
+	const std::vector<tcu::Vec4>&	vertices;
 };
 
 //! Sets up a graphics pipeline and enables simple draw calls to predefined attachments.
@@ -81,10 +89,8 @@
 class DrawContext
 {
 public:
-											DrawContext				(const DrawState&		drawState,
-																	 const DrawCallData&	drawCallData)
-		: m_drawState						(drawState)
-		, m_drawCallData					(drawCallData)
+											DrawContext				(const FrameBufferState&		framebufferState)
+		: m_framebufferState					(framebufferState)
 	{
 	}
 	virtual									~DrawContext			(void)
@@ -94,98 +100,96 @@
 	virtual void							draw					(void) = 0;
 	virtual tcu::ConstPixelBufferAccess		getColorPixels			(void) const = 0;
 protected:
-	const DrawState&						m_drawState;
-	const DrawCallData&						m_drawCallData;
+	const FrameBufferState&					m_framebufferState;
+	std::vector<PipelineState>				m_pipelineStates;
+	std::vector<DrawCallData>				m_drawCallData;
 };
 
 class ReferenceDrawContext : public DrawContext
 {
 public:
-											ReferenceDrawContext	(const DrawState&			drawState,
-																	 const DrawCallData&		drawCallData,
-																	 const rr::VertexShader&	vertexShader,
-																	 const rr::FragmentShader&	fragmentShader)
-		: DrawContext						(drawState, drawCallData)
-		, m_vertexShader					(vertexShader)
-		, m_fragmentShader					(fragmentShader)
-	{
-	}
+	ReferenceDrawContext											(const FrameBufferState&		framebufferState );
 	virtual									~ReferenceDrawContext	(void);
+
+	void									registerDrawObject		(const PipelineState&					pipelineState,
+																	 std::shared_ptr<rr::VertexShader>&		vertexShader,
+																	 std::shared_ptr<rr::FragmentShader>&	fragmentShader,
+																	 const DrawCallData&					drawCallData);
 	virtual void							draw					(void);
 	virtual tcu::ConstPixelBufferAccess		getColorPixels			(void) const;
 private:
-	const rr::VertexShader&					m_vertexShader;
-	const rr::FragmentShader&				m_fragmentShader;
-	tcu::TextureLevel						m_refImage;
+	std::vector<std::shared_ptr<rr::VertexShader>>		m_vertexShaders;
+	std::vector< std::shared_ptr<rr::FragmentShader>>	m_fragmentShaders;
+	tcu::TextureLevel									m_refImage;
 };
 
 struct VulkanShader
 {
+	VulkanShader	() = delete;
+	VulkanShader	(const vk::VkShaderStageFlagBits stage_, const vk::ProgramBinary& binary_);
+
 	vk::VkShaderStageFlagBits	stage;
 	const vk::ProgramBinary*	binary;
-
-	VulkanShader (const vk::VkShaderStageFlagBits stage_, const vk::ProgramBinary& binary_)
-		: stage		(stage_)
-		, binary	(&binary_)
-	{
-	}
 };
 
 struct VulkanProgram
 {
+	VulkanProgram	(const std::vector<VulkanShader>& shaders_);
+
 	std::vector<VulkanShader>	shaders;
-	vk::VkImageView				depthImageView;		// \todo [2017-06-06 pyry] This shouldn't be here? Doesn't logically belong to program
-	vk::VkDescriptorSetLayout	descriptorSetLayout;
-	vk::VkDescriptorSet			descriptorSet;
+	vk::VkDescriptorSetLayout	descriptorSetLayout	= 0;
+	vk::VkDescriptorSet			descriptorSet		= 0;
+};
 
-	VulkanProgram (const std::vector<VulkanShader>& shaders_)
-		: shaders				(shaders_)
-		, depthImageView		(0)
-		, descriptorSetLayout	(0)
-		, descriptorSet			(0)
-	{}
+struct RenderObject
+{
+	enum VulkanContants
+	{
+		MAX_NUM_SHADER_MODULES = 5,
+	};
 
-	VulkanProgram (void)
-		: depthImageView		(0)
-		, descriptorSetLayout	(0)
-		, descriptorSet			(0)
-	{}
+	vk::refdetails::Move<vk::VkPipelineLayout>	pipelineLayout;
+	vk::refdetails::Move<vk::VkPipeline>		pipeline;
+	vk::refdetails::Move<vk::VkShaderModule>	shaderModules[MAX_NUM_SHADER_MODULES];
+	de::MovePtr<vk::BufferWithMemory>			vertexBuffer;
+	deUint32									vertexCount;
+	vk::VkDescriptorSetLayout					descriptorSetLayout = 0;
+	vk::VkDescriptorSet							descriptorSet = 0;
+
 };
 
 class VulkanDrawContext : public DrawContext
 {
 public:
-											VulkanDrawContext	(Context&				context,
-																 const DrawState&		drawState,
-																 const DrawCallData&	drawCallData,
-																 const VulkanProgram&	vulkanProgram);
+	VulkanDrawContext											(Context&					context,
+																 const FrameBufferState&	frameBufferState);
 	virtual									~VulkanDrawContext	(void);
+
+	void									registerDrawObject	(const PipelineState&		pipelineState,
+																 const VulkanProgram&		vulkanProgram,
+																 const DrawCallData&		drawCallData);
+
 	virtual void							draw				(void);
 	virtual tcu::ConstPixelBufferAccess		getColorPixels		(void) const;
 private:
-	enum VulkanContants
-	{
-		MAX_NUM_SHADER_MODULES					= 5,
-	};
 	Context&									m_context;
-	const VulkanProgram&						m_program;
 	de::MovePtr<vk::ImageWithMemory>			m_colorImage;
 	de::MovePtr<vk::ImageWithMemory>			m_resolveImage;
+	de::MovePtr<vk::ImageWithMemory>			m_depthImage;
 	de::MovePtr<vk::BufferWithMemory>			m_colorAttachmentBuffer;
 	vk::refdetails::Move<vk::VkImageView>		m_colorImageView;
+	vk::refdetails::Move<vk::VkImageView>		m_depthImageView;
 	vk::refdetails::Move<vk::VkRenderPass>		m_renderPass;
 	vk::refdetails::Move<vk::VkFramebuffer>		m_framebuffer;
-	vk::refdetails::Move<vk::VkPipelineLayout>	m_pipelineLayout;
-	vk::refdetails::Move<vk::VkPipeline>		m_pipeline;
 	vk::refdetails::Move<vk::VkCommandPool>		m_cmdPool;
 	vk::refdetails::Move<vk::VkCommandBuffer>	m_cmdBuffer;
-	vk::refdetails::Move<vk::VkShaderModule>	m_shaderModules[MAX_NUM_SHADER_MODULES];
-	de::MovePtr<vk::BufferWithMemory>			m_vertexBuffer;
+
+	std::vector<std::shared_ptr<RenderObject>>	m_renderObjects;
 };
 
 std::string getPrimitiveTopologyShortName (const vk::VkPrimitiveTopology topology);
 
-} // drwwutil
+} // drawutil
 } // vkt
 
 #endif // _VKTDRAWUTIL_HPP
diff --git a/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp b/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
index b38f655..076dd8c 100644
--- a/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
+++ b/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
@@ -1125,42 +1125,6 @@
 
 		return memory;
 	}
-	else if (externalType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
-	{
-		AndroidHardwareBufferExternalApi* ahbApi = AndroidHardwareBufferExternalApi::getInstance();
-		if (!ahbApi)
-		{
-			TCU_THROW(NotSupportedError, "Platform doesn't support Android Hardware Buffer handles");
-		}
-
-		deUint32 ahbFormat = 0;
-		ahbApi->describe(handle.getAndroidHardwareBuffer(), DE_NULL, DE_NULL, DE_NULL, &ahbFormat, DE_NULL, DE_NULL);
-		DE_ASSERT(ahbApi->ahbFormatIsBlob(ahbFormat) || image != 0);
-
-		vk::VkImportAndroidHardwareBufferInfoANDROID	importInfo =
-		{
-			vk::VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
-			DE_NULL,
-			handle.getAndroidHardwareBuffer()
-		};
-		const vk::VkMemoryDedicatedAllocateInfo		dedicatedInfo =
-		{
-			vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
-			&importInfo,
-			image,
-			buffer,
-		};
-		const vk::VkMemoryAllocateInfo					info =
-		{
-			vk::VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
-			(isDedicated ? (const void*)&dedicatedInfo : (const void*)&importInfo),
-			requirements.size,
-			(memoryTypeIndex == ~0U) ? chooseMemoryType(requirements.memoryTypeBits)  : memoryTypeIndex
-		};
-		vk::Move<vk::VkDeviceMemory> memory (vk::allocateMemory(vkd, device, &info));
-
-		return memory;
-	}
 	else if (externalType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT)
 	{
 		DE_ASSERT(memoryTypeIndex != ~0U);
diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp
index 935afa5..c1b8b76 100644
--- a/external/vulkancts/modules/vulkan/vktTestCase.cpp
+++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp
@@ -58,7 +58,9 @@
 vector<string> filterExtensions (const vector<VkExtensionProperties>& extensions)
 {
 	vector<string>	enabledExtensions;
-	const char*		extensionGroups[] =
+	bool			khrBufferDeviceAddress	= false;
+
+	const char*		extensionGroups[]		=
 	{
 		"VK_KHR_",
 		"VK_EXT_",
@@ -73,6 +75,19 @@
 
 	for (size_t extNdx = 0; extNdx < extensions.size(); extNdx++)
 	{
+		if (deStringEqual(extensions[extNdx].extensionName, "VK_KHR_buffer_device_address"))
+		{
+			khrBufferDeviceAddress = true;
+			break;
+		}
+	}
+
+	for (size_t extNdx = 0; extNdx < extensions.size(); extNdx++)
+	{
+		// VK_EXT_buffer_device_address is deprecated and must not be enabled if VK_KHR_buffer_device_address is enabled
+		if (khrBufferDeviceAddress && deStringEqual(extensions[extNdx].extensionName, "VK_EXT_buffer_device_address"))
+			continue;
+
 		for (int extGroupNdx = 0; extGroupNdx < DE_LENGTH_OF_ARRAY(extensionGroups); extGroupNdx++)
 		{
 			if (deStringBeginsWith(extensions[extNdx].extensionName, extensionGroups[extGroupNdx]))
diff --git a/external/vulkancts/modules/vulkan/vktTestPackage.cpp b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
index f89cd3c..aa6e136 100644
--- a/external/vulkancts/modules/vulkan/vktTestPackage.cpp
+++ b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
@@ -51,6 +51,7 @@
 #include "vktShaderRenderDerivateTests.hpp"
 #include "vktShaderRenderDiscardTests.hpp"
 #include "vktShaderRenderIndexingTests.hpp"
+#include "vktShaderRenderInvarianceTests.hpp"
 #include "vktShaderRenderLimitTests.hpp"
 #include "vktShaderRenderLoopTests.hpp"
 #include "vktShaderRenderMatrixTests.hpp"
@@ -424,6 +425,7 @@
 	glslTests->addChild(sr::createDiscardTests			(testCtx));
 	glslTests->addChild(sr::createDemoteTests			(testCtx));
 	glslTests->addChild(sr::createIndexingTests			(testCtx));
+	glslTests->addChild(sr::createShaderInvarianceTests	(testCtx));
 	glslTests->addChild(sr::createLimitTests			(testCtx));
 	glslTests->addChild(sr::createLoopTests				(testCtx));
 	glslTests->addChild(sr::createMatrixTests			(testCtx));
diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
index 0ea042c..f985db9 100644
--- a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
+++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
@@ -55,6 +55,7 @@
 #include "deSharedPtr.hpp"
 
 #include <limits>
+#include <algorithm>
 
 namespace vkt
 {
@@ -1888,22 +1889,30 @@
 	vector<VkImage>								rawImages						(numImages);
 	vector<ImageSp>								imagesSfr						(numImages);
 	vector<VkImage>								rawImagesSfr					(numImages);
+	vector<VkBindImageMemorySwapchainInfoKHR>	bindImageMemorySwapchainInfo	(numImages);
 
 	// Create non-SFR image aliases for image layout transition
 	{
-	vector<VkBindImageMemorySwapchainInfoKHR>	bindImageMemorySwapchainInfo	(numImages);
-	vector<VkBindImageMemoryDeviceGroupInfo	>	bindImageMemoryDeviceGroupInfo	(numImages);
-	vector<VkBindImageMemoryInfo>				bindImageMemoryInfos			(numImages);
+		vector<VkBindImageMemoryInfo>				bindImageMemoryInfos			(numImages);
 
-	for (deUint32 idx = 0; idx < numImages; ++idx)
-	{
-		// Create image
-		images[idx] = ImageSp(new UniqueImage(createImage(vkd, *groupDevice, &imageCreateInfo)));
+		for (deUint32 idx = 0; idx < numImages; ++idx)
+		{
+			// Create image
+			images[idx] = ImageSp(new UniqueImage(createImage(vkd, *groupDevice, &imageCreateInfo)));
+
+			VkBindImageMemorySwapchainInfoKHR bimsInfo =
+			{
+				VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
+				DE_NULL,
+				*swapchain,
+				idx
+			};
+			bindImageMemorySwapchainInfo[idx] = bimsInfo;
 
 			VkBindImageMemoryInfo bimInfo =
 			{
 				VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
-				DE_NULL,
+				&bindImageMemorySwapchainInfo[idx],
 				**images[idx],
 				DE_NULL,				// If the pNext chain includes an instance of VkBindImageMemorySwapchainInfoKHR, memory must be VK_NULL_HANDLE
 				0u						// If swapchain <in VkBindImageMemorySwapchainInfoKHR> is not NULL, the swapchain and imageIndex are used to determine the memory that the image is bound to, instead of memory and memoryOffset.
@@ -1917,7 +1926,6 @@
 
 	// Create the SFR images
 	{
-		vector<VkBindImageMemorySwapchainInfoKHR>	bindImageMemorySwapchainInfo	(numImages);
 		vector<VkBindImageMemoryDeviceGroupInfo	>	bindImageMemoryDeviceGroupInfo	(numImages);
 		vector<VkBindImageMemoryInfo>				bindImageMemoryInfos			(numImages);
 		for (deUint32 idx = 0; idx < numImages; ++idx)
@@ -1925,15 +1933,6 @@
 			// Create image
 			imagesSfr[idx] = ImageSp(new UniqueImage(createImage(vkd, *groupDevice, &imageCreateInfo)));
 
-		VkBindImageMemorySwapchainInfoKHR bimsInfo =
-		{
-			VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
-			DE_NULL,
-			*swapchain,
-			idx
-		};
-		bindImageMemorySwapchainInfo[idx] = bimsInfo;
-
 		// Split into 2 vertical halves
 		// NOTE: the same split has to be done also in WsiTriangleRenderer::recordDeviceGroupFrame
 		const deUint32	halfWidth			= desiredSize.x() / 2;
@@ -2341,6 +2340,82 @@
 	return tcu::TestStatus::pass("Destroying a VK_NULL_HANDLE surface has no effect");
 }
 
+tcu::TestStatus acquireTooManyTest (Context& context, Type wsiType)
+{
+	const tcu::UVec2               desiredSize     (256, 256);
+	const InstanceHelper           instHelper      (context, wsiType);
+	const NativeObjects            native          (context, instHelper.supportedExtensions, wsiType, tcu::just(desiredSize));
+	const Unique<VkSurfaceKHR>     surface         (createSurface(instHelper.vki, instHelper.instance, wsiType, native.getDisplay(), native.getWindow()));
+	const DeviceHelper             devHelper       (context, instHelper.vki, instHelper.instance, *surface);
+	const VkSwapchainCreateInfoKHR swapchainInfo = getBasicSwapchainParameters(wsiType, instHelper.vki, devHelper.physicalDevice, *surface, desiredSize, 2);
+	const Unique<VkSwapchainKHR>   swapchain       (createSwapchainKHR(devHelper.vkd, *devHelper.device, &swapchainInfo));
+
+	deUint32 numImages;
+	VK_CHECK(devHelper.vkd.getSwapchainImagesKHR(*devHelper.device, *swapchain, &numImages, DE_NULL));
+	const deUint32 minImageCount = getPhysicalDeviceSurfaceCapabilities(instHelper.vki, devHelper.physicalDevice, *surface).minImageCount;
+	if (numImages < minImageCount) return tcu::TestStatus::fail("Get swapchain images returned less than minImageCount images");
+	const deUint32 numAcquirableImages = numImages - minImageCount + 1;
+
+	const auto fences = createFences(devHelper.vkd, *devHelper.device, numAcquirableImages + 1);
+	deUint32 dummy;
+	for (deUint32 i = 0; i < numAcquirableImages; ++i) {
+		VK_CHECK_WSI(devHelper.vkd.acquireNextImageKHR(*devHelper.device, *swapchain, std::numeric_limits<deUint64>::max(), (VkSemaphore)0, **fences[i], &dummy));
+	}
+
+	const auto result = devHelper.vkd.acquireNextImageKHR(*devHelper.device, *swapchain, 0, (VkSemaphore)0, **fences[numAcquirableImages], &dummy);
+
+	if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR && result != VK_NOT_READY ){
+		return tcu::TestStatus::fail("Implementation failed to respond well acquiring too many images with 0 timeout");
+	}
+
+	// cleanup
+	const deUint32 numFences = (result == VK_NOT_READY) ? static_cast<deUint32>(fences.size() - 1) : static_cast<deUint32>(fences.size());
+	vector<vk::VkFence> fencesRaw(numFences);
+	std::transform(fences.begin(), fences.begin() + numFences, fencesRaw.begin(), [](const FenceSp& f) -> vk::VkFence{ return **f; });
+	VK_CHECK(devHelper.vkd.waitForFences(*devHelper.device, numFences, fencesRaw.data(), VK_TRUE, std::numeric_limits<deUint64>::max()));
+
+	return tcu::TestStatus::pass("Acquire too many swapchain images test succeeded");
+}
+
+tcu::TestStatus acquireTooManyTimeoutTest (Context& context, Type wsiType)
+{
+	const tcu::UVec2               desiredSize     (256, 256);
+	const InstanceHelper           instHelper      (context, wsiType);
+	const NativeObjects            native          (context, instHelper.supportedExtensions, wsiType, tcu::just(desiredSize));
+	const Unique<VkSurfaceKHR>     surface         (createSurface(instHelper.vki, instHelper.instance, wsiType, native.getDisplay(), native.getWindow()));
+	const DeviceHelper             devHelper       (context, instHelper.vki, instHelper.instance, *surface);
+	const VkSwapchainCreateInfoKHR swapchainInfo = getBasicSwapchainParameters(wsiType, instHelper.vki, devHelper.physicalDevice, *surface, desiredSize, 2);
+	const Unique<VkSwapchainKHR>   swapchain       (createSwapchainKHR(devHelper.vkd, *devHelper.device, &swapchainInfo));
+
+	deUint32 numImages;
+	VK_CHECK(devHelper.vkd.getSwapchainImagesKHR(*devHelper.device, *swapchain, &numImages, DE_NULL));
+	const deUint32 minImageCount = getPhysicalDeviceSurfaceCapabilities(instHelper.vki, devHelper.physicalDevice, *surface).minImageCount;
+	if (numImages < minImageCount) return tcu::TestStatus::fail("Get swapchain images returned less than minImageCount images");
+	const deUint32 numAcquirableImages = numImages - minImageCount + 1;
+
+	const auto fences = createFences(devHelper.vkd, *devHelper.device, numAcquirableImages + 1);
+	deUint32 dummy;
+	for (deUint32 i = 0; i < numAcquirableImages; ++i) {
+		VK_CHECK_WSI(devHelper.vkd.acquireNextImageKHR(*devHelper.device, *swapchain, std::numeric_limits<deUint64>::max(), (VkSemaphore)0, **fences[i], &dummy));
+	}
+
+	const deUint64 millisecond = 1000000;
+	const deUint64 timeout = 50 * millisecond; // arbitrary realistic non-0 non-infinite timeout
+	const auto result = devHelper.vkd.acquireNextImageKHR(*devHelper.device, *swapchain, timeout, (VkSemaphore)0, **fences[numAcquirableImages], &dummy);
+
+	if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR && result != VK_TIMEOUT ){
+		return tcu::TestStatus::fail("Implementation failed to respond well acquiring too many images with timeout");
+	}
+
+	// cleanup
+	const deUint32 numFences = (result == VK_TIMEOUT) ? static_cast<deUint32>(fences.size() - 1) : static_cast<deUint32>(fences.size());
+	vector<vk::VkFence> fencesRaw(numFences);
+	std::transform(fences.begin(), fences.begin() + numFences, fencesRaw.begin(), [](const FenceSp& f) -> vk::VkFence{ return **f; });
+	VK_CHECK(devHelper.vkd.waitForFences(*devHelper.device, numFences, fencesRaw.data(), VK_TRUE, std::numeric_limits<deUint64>::max()));
+
+	return tcu::TestStatus::pass("Acquire too many swapchain images test succeeded");
+}
+
 void getBasicRenderPrograms (SourceCollections& dst, Type)
 {
 	WsiTriangleRenderer::getPrograms(dst);
@@ -2390,6 +2465,12 @@
 	addFunctionCase(testGroup, "null_handle", "Destroying a VK_NULL_HANDLE swapchain", destroyNullHandleSwapchainTest, wsiType);
 }
 
+void populateAcquireGroup (tcu::TestCaseGroup* testGroup, Type wsiType)
+{
+	addFunctionCase(testGroup, "too_many", "Test acquiring too many images with 0 timeout", acquireTooManyTest, wsiType);
+	addFunctionCase(testGroup, "too_many_timeout", "Test acquiring too many images with timeout", acquireTooManyTimeoutTest, wsiType);
+}
+
 } // anonymous
 
 void createSwapchainTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType)
@@ -2400,6 +2481,7 @@
 	addTestGroup(testGroup, "modify",			"Modify VkSwapchain",											populateModifyGroup,		wsiType);
 	addTestGroup(testGroup, "destroy",			"Destroy VkSwapchain",											populateDestroyGroup,		wsiType);
 	addTestGroup(testGroup, "get_images",		"Get swapchain images",											populateGetImagesGroup,		wsiType);
+	addTestGroup(testGroup, "acquire",			"Ancquire next swapchain image",								populateAcquireGroup,		wsiType);
 }
 
 } // wsi
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrConversionTests.cpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrConversionTests.cpp
index 40c0f0f..01ec697 100644
--- a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrConversionTests.cpp
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrConversionTests.cpp
@@ -246,11 +246,12 @@
 
 vk::Move<vk::VkDescriptorPool> createDescriptorPool (const vk::DeviceInterface&											vkd,
 													 vk::VkDevice														device,
-													 const std::vector<de::SharedPtr<vk::Unique<vk::VkSampler> > >&		samplers)
+													 const std::vector<de::SharedPtr<vk::Unique<vk::VkSampler> > >&		samplers,
+													 const deUint32														combinedSamplerDescriptorCount)
 {
 	const vk::VkDescriptorPoolSize			poolSizes[]					=
 	{
-		{ vk::VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, (deUint32)samplers.size() }
+		{ vk::VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, (deUint32)samplers.size() * combinedSamplerDescriptorCount }
 	};
 	const vk::VkDescriptorPoolCreateInfo	descriptorPoolCreateInfo	=
 	{
@@ -488,6 +489,7 @@
 				 deUint32												samplerBinding,
 				 vector<vector<Vec4> >&									results)
 {
+	const vk::InstanceInterface&											vk				(context.getInstanceInterface());
 	const vk::DeviceInterface&												vkd				(context.getDeviceInterface());
 	const vk::VkDevice														device			(context.getDevice());
 	std::vector<de::SharedPtr<vk::Unique<vk::VkSamplerYcbcrConversion> > >	conversions;
@@ -523,8 +525,37 @@
 	}
 #endif
 
+	deUint32 combinedSamplerDescriptorCount = 1;
+	{
+		const vk::VkPhysicalDeviceImageFormatInfo2 imageFormatInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,	//VkStructureType		sType;
+			DE_NULL,													//const void*			pNext;
+			format,														//VkFormat				format;
+			vk::VK_IMAGE_TYPE_2D,										//VkImageType			type;
+			imageTiling,												//VkImageTiling			tiling;
+			vk::VK_IMAGE_USAGE_TRANSFER_DST_BIT |
+			vk::VK_IMAGE_USAGE_SAMPLED_BIT,								//VkImageUsageFlags		usage;
+			disjoint ?
+			(vk::VkImageCreateFlags)vk::VK_IMAGE_CREATE_DISJOINT_BIT :
+			(vk::VkImageCreateFlags)0u									//VkImageCreateFlags	flags;
+		};
+
+		vk::VkSamplerYcbcrConversionImageFormatProperties samplerYcbcrConversionImage = {};
+		samplerYcbcrConversionImage.sType = vk::VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
+		samplerYcbcrConversionImage.pNext = DE_NULL;
+
+		vk::VkImageFormatProperties2 imageFormatProperties = {};
+		imageFormatProperties.sType = vk::VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
+		imageFormatProperties.pNext = &samplerYcbcrConversionImage;
+
+		VK_CHECK(vk.getPhysicalDeviceImageFormatProperties2(context.getPhysicalDevice(), &imageFormatInfo, &imageFormatProperties));
+		combinedSamplerDescriptorCount = samplerYcbcrConversionImage.combinedImageSamplerDescriptorCount;
+	}
+
+
 	const vk::Unique<vk::VkDescriptorSetLayout>			layout				(createDescriptorSetLayout(vkd, device, samplers, samplerBinding));
-	const vk::Unique<vk::VkDescriptorPool>				descriptorPool		(createDescriptorPool(vkd, device, samplers));
+	const vk::Unique<vk::VkDescriptorPool>				descriptorPool		(createDescriptorPool(vkd, device, samplers, combinedSamplerDescriptorCount));
 	const vk::Unique<vk::VkDescriptorSet>				descriptorSet		(createDescriptorSet(vkd, device, *descriptorPool, *layout, samplers, imageViews, samplerBinding));
 
 	const ShaderSpec									spec				(createShaderSpec(samplerBinding, colorModels));
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrImageQueryTests.cpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrImageQueryTests.cpp
index e2bd9aa..1f1c82a 100644
--- a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrImageQueryTests.cpp
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrImageQueryTests.cpp
@@ -600,13 +600,6 @@
 
 		struct LocalUtil
 		{
-			static DrawState getDrawState (UVec2 renderSize, const int subpixelBits)
-			{
-				DrawState state(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, renderSize.x(), renderSize.y(), subpixelBits);
-				state.colorFormat = VK_FORMAT_R32G32_SFLOAT;
-				return state;
-			}
-
 			static vector<Vec4> getVertices (void)
 			{
 				vector<Vec4> vertices;
@@ -624,11 +617,10 @@
 
 			static VulkanProgram getProgram (Context& ctx, VkDescriptorSetLayout descriptorLayout, VkDescriptorSet descriptorSet)
 			{
-				VulkanProgram	prog;
-
-				prog.shaders.push_back(VulkanShader(VK_SHADER_STAGE_VERTEX_BIT,		ctx.getBinaryCollection().get("vert")));
-				prog.shaders.push_back(VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT,	ctx.getBinaryCollection().get("frag")));
-
+				VulkanProgram	prog(std::vector<VulkanShader>{
+					VulkanShader(VK_SHADER_STAGE_VERTEX_BIT, ctx.getBinaryCollection().get("vert")),
+					VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT, ctx.getBinaryCollection().get("frag"))
+				});
 				prog.descriptorSet			= descriptorSet;
 				prog.descriptorSetLayout	= descriptorLayout;
 
@@ -636,11 +628,13 @@
 			}
 		};
 
-		const UVec2					renderSize	(128, 256);
-		const vector<Vec4>			vertices	(LocalUtil::getVertices());
-		const DrawState				drawState	(LocalUtil::getDrawState(renderSize, context.getDeviceProperties().limits.subPixelPrecisionBits));
-		const DrawCallData			drawCallData(vertices);
-		const VulkanProgram			program		(LocalUtil::getProgram(context, *descLayout, *descSet));
+		const UVec2						renderSize(128, 256);
+		FrameBufferState				frameBufferState(renderSize.x(), renderSize.y());
+		frameBufferState.colorFormat	= VK_FORMAT_R32G32_SFLOAT;
+		const vector<Vec4>				vertices	(LocalUtil::getVertices());
+		PipelineState					pipelineState(context.getDeviceProperties().limits.subPixelPrecisionBits);
+		const DrawCallData				drawCallData(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, vertices);
+		const VulkanProgram				program		(LocalUtil::getProgram(context, *descLayout, *descSet));
 
 		bool						allOk		= true;
 
@@ -654,7 +648,8 @@
 
 			bindImage(vkd, device, *descSet, testImages[imageNdx]->getImageView(), *sampler);
 
-			VulkanDrawContext	renderer	(context, drawState, drawCallData, program);
+			VulkanDrawContext	renderer(context, frameBufferState);
+			renderer.registerDrawObject(pipelineState, program, drawCallData);
 			renderer.draw();
 
 			{
diff --git a/external/vulkancts/mustpass/master/src/excluded-tests.txt b/external/vulkancts/mustpass/master/src/excluded-tests.txt
index ba6e2d8..160f3df 100644
--- a/external/vulkancts/mustpass/master/src/excluded-tests.txt
+++ b/external/vulkancts/mustpass/master/src/excluded-tests.txt
@@ -1,29 +1,6 @@
-# Excluded texture function tests according to the Android GLES3 issue list
-dEQP-VK.glsl.texture_functions.texturegrad.samplercubeshadow_fragment
-dEQP-VK.glsl.texture_functions.texturegrad.samplercubeshadow_vertex
-
-# Excluded sparse version of the above texture function tests
+# Excluded sparse version of texture function tests according to the Android GLES3 issue list
 dEQP-VK.glsl.texture_functions.texturegrad.sparse_samplercubeshadow_fragment
 dEQP-VK.glsl.texture_functions.texturegrad.sparse_samplercubeshadow_vertex
-dEQP-VK.glsl.texture_functions.texturegrad.sparse_isamplercube_fragment
-dEQP-VK.glsl.texture_functions.texturegrad.sparse_isamplercube_vertex
-dEQP-VK.glsl.texture_functions.texturegrad.sparse_usamplercube_fragment
-dEQP-VK.glsl.texture_functions.texturegrad.sparse_isampler3d_vertex
-
-# Issue 420: Exclude problematic clipping tests
-dEQP-VK.clipping.clip_volume.clipped.large_points
-dEQP-VK.clipping.clip_volume.clipped.wide_lines_axis_aligned
-dEQP-VK.clipping.clip_volume.clipped.wide_lines_diagonal
-
-# Issue 419: Failing sparse tests (Image mismatch)
-dEQP-VK.glsl.texture_functions.texture.sparse_isampler2d_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_usampler2d_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_isamplercube_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_usamplercube_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_isampler2darray_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_usampler2darray_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_isampler3d_bias_fragment
-dEQP-VK.glsl.texture_functions.texture.sparse_usampler3d_bias_fragment
 
 # Excluded Amber example tests
 dEQP-VK.amber-example.*
@@ -38,4 +15,9 @@
 
 # VK-GL-CTS 1829
 # Test shader length is excessive, excluding until such time as the test case can be re-visited.
-dEQP-VK.ssbo.layout.random.scalar.75
\ No newline at end of file
+dEQP-VK.ssbo.layout.random.scalar.75
+
+# VK-GL-CTS 1024
+dEQP-VK.rasterization.interpolation_multisample_16_bit.lines_wide
+dEQP-VK.rasterization.interpolation_multisample_16_bit.non_strict_lines_wide
+dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.non_strict_lines_wide
diff --git a/external/vulkancts/mustpass/master/vk-default-no-waivers.txt b/external/vulkancts/mustpass/master/vk-default-no-waivers.txt
index 4c3cccc..1dff4b0 100644
--- a/external/vulkancts/mustpass/master/vk-default-no-waivers.txt
+++ b/external/vulkancts/mustpass/master/vk-default-no-waivers.txt
Binary files differ
diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt
index 9d72f7a..9a89c16 100644
--- a/external/vulkancts/mustpass/master/vk-default.txt
+++ b/external/vulkancts/mustpass/master/vk-default.txt
Binary files differ
diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
index 95baeb1..afa9be0 100644
--- a/external/vulkancts/scripts/gen_framework.py
+++ b/external/vulkancts/scripts/gen_framework.py
@@ -1480,10 +1480,9 @@
 				for func in ext.functions:
 					if func.getType() == functionType:
 						funcNames.append(func.name)
-			if (funcNames):
-				yield ('\tif (extName == "%s")' % ext.name) if isFirstWrite else  ('\telse if (extName == "%s")' % ext.name)
-				if (len(funcNames) > 0):
-					yield "\t{"
+			if ext.name:
+				yield '\tif (extName == "%s")' % ext.name
+				yield '\t{'
 				for funcName in funcNames:
 					if funcName in dg_list:
 						yield '\t\tif(apiVersion >= VK_API_VERSION_1_1) functions.push_back("%s");' % funcName
@@ -1492,12 +1491,12 @@
 				if ext.name == "VK_KHR_device_group":
 					for dg_func in dg_list:
 						yield '\t\tif(apiVersion < VK_API_VERSION_1_1) functions.push_back("%s");' % dg_func
-				if (len(funcNames) > 0):
-					yield '\t}'
+				yield '\t\treturn;'
+				yield '\t}'
 				isFirstWrite = False
 		if not isFirstWrite:
-			yield '\telse'
-			yield '\t\tDE_FATAL("Extension name not found");\n}'
+			yield '\tDE_FATAL("Extension name not found");'
+			yield '}'
 
 	lines = ['']
 	for line in writeExtensionFunctions(Function.TYPE_INSTANCE):
diff --git a/external/vulkancts/scripts/src/vulkan_core.h b/external/vulkancts/scripts/src/vulkan_core.h
index 7fcbd61..afbbd52 100644
--- a/external/vulkancts/scripts/src/vulkan_core.h
+++ b/external/vulkancts/scripts/src/vulkan_core.h
@@ -2,7 +2,7 @@
 #define VULKAN_CORE_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -44,7 +44,7 @@
 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
 // Version of this file
-#define VK_HEADER_VERSION 130
+#define VK_HEADER_VERSION 132
 
 
 #define VK_NULL_HANDLE 0
diff --git a/framework/common/tcuInterval.hpp b/framework/common/tcuInterval.hpp
index 9eff241..952ba81 100644
--- a/framework/common/tcuInterval.hpp
+++ b/framework/common/tcuInterval.hpp
@@ -29,6 +29,7 @@
 
 #include <iostream>
 #include <limits>
+#include <cmath>
 
 #define TCU_INFINITY	(::std::numeric_limits<float>::infinity())
 #define TCU_NAN			(::std::numeric_limits<float>::quiet_NaN())
@@ -163,7 +164,32 @@
 
 	double		midpoint		(void) const
 	{
-		return 0.5 * (hi() + lo()); // returns NaN when not bounded
+		const double	h = hi();
+		const double	l = lo();
+
+		if (h == -l)
+			return 0.0;
+		if (l == -TCU_INFINITY)
+			return -TCU_INFINITY;
+		if (h == TCU_INFINITY)
+			return TCU_INFINITY;
+
+		const bool		negativeH = ::std::signbit(h);
+		const bool		negativeL = ::std::signbit(l);
+		double			ret;
+
+		if (negativeH != negativeL)
+		{
+			// Different signs. Adding both values should be safe.
+			ret = (h + l) * 0.5;
+		}
+		else
+		{
+			// Same sign. Substracting low from high should be safe.
+			ret = l + (h - l) * 0.5;
+		}
+
+		return ret;
 	}
 
 	bool		operator==		(const Interval& other) const
diff --git a/framework/common/tcuMatrix.hpp b/framework/common/tcuMatrix.hpp
index aebfaaf..3dc1a05 100644
--- a/framework/common/tcuMatrix.hpp
+++ b/framework/common/tcuMatrix.hpp
@@ -490,9 +490,6 @@
 typedef Matrix<float, 2, 2>		Matrix2f;
 typedef Matrix<float, 3, 3>		Matrix3f;
 typedef Matrix<float, 4, 4>		Matrix4f;
-typedef Matrix<double, 2, 2>	Matrix2d;
-typedef Matrix<double, 3, 3>	Matrix3d;
-typedef Matrix<double, 4, 4>	Matrix4d;
 
 // GLSL-style naming \note CxR.
 typedef Matrix2f			Mat2;
@@ -522,6 +519,22 @@
 typedef Matrix<deUint16, 3, 4>	Mat4x3_16b;
 typedef Matrix4f16b				Mat4_16b;
 
+// 64-bit matrices.
+typedef Matrix<double, 2, 2>	Matrix2d;
+typedef Matrix<double, 3, 3>	Matrix3d;
+typedef Matrix<double, 4, 4>	Matrix4d;
+
+// GLSL-style naming \note CxR.
+typedef Matrix2d				Mat2d;
+typedef Matrix<double, 3, 2>	Mat2x3d;
+typedef Matrix<double, 4, 2>	Mat2x4d;
+typedef Matrix<double, 2, 3>	Mat3x2d;
+typedef Matrix3d				Mat3d;
+typedef Matrix<double, 4, 3>	Mat3x4d;
+typedef Matrix<double, 2, 4>	Mat4x2d;
+typedef Matrix<double, 3, 4>	Mat4x3d;
+typedef Matrix4d				Mat4d;
+
 // Matrix-scalar operators.
 
 template <typename T, int Rows, int Cols>
diff --git a/framework/common/tcuRasterizationVerifier.cpp b/framework/common/tcuRasterizationVerifier.cpp
index ad2be99..6660fcd 100644
--- a/framework/common/tcuRasterizationVerifier.cpp
+++ b/framework/common/tcuRasterizationVerifier.cpp
@@ -28,7 +28,9 @@
 #include "tcuTextureUtil.hpp"
 #include "tcuVectorUtil.hpp"
 #include "tcuFloat.hpp"
+
 #include "deMath.h"
+#include "deStringUtil.hpp"
 
 #include "rrRasterizer.hpp"
 
@@ -39,6 +41,8 @@
 namespace
 {
 
+bool verifyLineGroupInterpolationWithProjectedWeights (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log);
+
 bool lineLineIntersect (const tcu::Vector<deInt64, 2>& line0Beg, const tcu::Vector<deInt64, 2>& line0End, const tcu::Vector<deInt64, 2>& line1Beg, const tcu::Vector<deInt64, 2>& line1End)
 {
 	typedef tcu::Vector<deInt64, 2> I64Vec2;
@@ -651,7 +655,11 @@
 };
 
 template <typename Interpolator>
-bool verifyTriangleGroupInterpolationWithInterpolator (const tcu::Surface& surface, const TriangleSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const Interpolator& interpolator)
+bool verifyTriangleGroupInterpolationWithInterpolator (const tcu::Surface&							surface,
+													   const TriangleSceneSpec&						scene,
+													   const RasterizationArguments&				args,
+													   VerifyTriangleGroupInterpolationLogStash&	logStash,
+													   const Interpolator&							interpolator)
 {
 	const tcu::RGBA		invalidPixelColor	= tcu::RGBA(255, 0, 0, 255);
 	const bool			multisampled		= (args.numSamples != 0);
@@ -666,21 +674,22 @@
 
 	// log format
 
-	log << tcu::TestLog::Message << "Verifying rasterization result. Native format is RGB" << args.redBits << args.greenBits << args.blueBits << tcu::TestLog::EndMessage;
+	logStash.messages.push_back(std::string("Verifying rasterization result. Native format is RGB" + de::toString(args.redBits) + de::toString(args.greenBits) + de::toString(args.blueBits)));
 	if (args.redBits > 8 || args.greenBits > 8 || args.blueBits > 8)
-		log << tcu::TestLog::Message << "Warning! More than 8 bits in a color channel, this may produce false negatives." << tcu::TestLog::EndMessage;
+		logStash.messages.push_back(std::string("Warning! More than 8 bits in a color channel, this may produce false negatives."));
 
-	// subpixel bits in in a valid range?
+	// subpixel bits in a valid range?
 
 	if (subPixelBits < 0)
 	{
-		log << tcu::TestLog::Message << "Invalid subpixel count (" << subPixelBits << "), assuming 0" << tcu::TestLog::EndMessage;
+		logStash.messages.push_back(std::string("Invalid subpixel count (" + de::toString(subPixelBits) + "), assuming 0"));
 		subPixelBits = 0;
 	}
 	else if (subPixelBits > 16)
 	{
 		// At high subpixel bit counts we might overflow. Checking at lower bit count is ok, but is less strict
-		log << tcu::TestLog::Message << "Subpixel count is greater than 16 (" << subPixelBits << "). Checking results using less strict 16 bit requirements. This may produce false positives." << tcu::TestLog::EndMessage;
+		logStash.messages.push_back(std::string("Subpixel count is greater than 16 (" + de::toString(subPixelBits) + ")."
+												" Checking results using less strict 16 bit requirements. This may produce false positives."));
 		subPixelBits = 16;
 	}
 
@@ -763,11 +772,13 @@
 				// don't fill the logs with too much data
 				if (errorCount < errorFloodThreshold)
 				{
-					log << tcu::TestLog::Message
-						<< "Found an invalid pixel at (" << x << "," << y << ")\n"
+					std::ostringstream str;
+
+					str << "Found an invalid pixel at (" << x << "," << y << ")\n"
 						<< "\tPixel color:\t\t" << color << "\n"
-						<< "\tExpected background color.\n"
-						<< tcu::TestLog::EndMessage;
+						<< "\tExpected background color.\n";
+
+					logStash.messages.push_back(str.str());
 				}
 
 				++invalidPixels;
@@ -816,8 +827,9 @@
 				// don't fill the logs with too much data
 				if (errorCount <= errorFloodThreshold)
 				{
-					log << tcu::TestLog::Message
-						<< "Found an invalid pixel at (" << x << "," << y << ")\n"
+					std::ostringstream str;
+
+					str << "Found an invalid pixel at (" << x << "," << y << ")\n"
 						<< "\tPixel color:\t\t" << color << "\n"
 						<< "\tNative color:\t\t" << pixelNativeColor << "\n"
 						<< "\tAllowed error:\t\t" << tcu::IVec3(thresholdRed, thresholdGreen, thresholdBlue) << "\n"
@@ -826,8 +838,8 @@
 						<< "\tReference native float min: " << tcu::clamp(colorMinF - tcu::IVec3(thresholdRed, thresholdGreen, thresholdBlue).cast<float>(), tcu::Vec3(0.0f, 0.0f, 0.0f), formatLimit.cast<float>()) << "\n"
 						<< "\tReference native float max: " << tcu::clamp(colorMaxF + tcu::IVec3(thresholdRed, thresholdGreen, thresholdBlue).cast<float>(), tcu::Vec3(0.0f, 0.0f, 0.0f), formatLimit.cast<float>()) << "\n"
 						<< "\tFmin:\t" << tcu::clamp(valueRangeMin, tcu::Vec3(0.0f, 0.0f, 0.0f), tcu::Vec3(1.0f, 1.0f, 1.0f)) << "\n"
-						<< "\tFmax:\t" << tcu::clamp(valueRangeMax, tcu::Vec3(0.0f, 0.0f, 0.0f), tcu::Vec3(1.0f, 1.0f, 1.0f)) << "\n"
-						<< tcu::TestLog::EndMessage;
+						<< "\tFmax:\t" << tcu::clamp(valueRangeMax, tcu::Vec3(0.0f, 0.0f, 0.0f), tcu::Vec3(1.0f, 1.0f, 1.0f)) << "\n";
+					logStash.messages.push_back(str.str());
 				}
 
 				++invalidPixels;
@@ -838,28 +850,16 @@
 
 	// don't just hide failures
 	if (errorCount > errorFloodThreshold)
-		log << tcu::TestLog::Message << "Omitted " << (errorCount-errorFloodThreshold) << " pixel error description(s)." << tcu::TestLog::EndMessage;
+		logStash.messages.push_back(std::string("Omitted " + de::toString(errorCount - errorFloodThreshold) + " pixel error description(s)."));
+
+	logStash.success		= (invalidPixels == 0);
+	logStash.invalidPixels	= invalidPixels;
 
 	// report result
-	if (invalidPixels)
-	{
-		log << tcu::TestLog::Message << invalidPixels << " invalid pixel(s) found." << tcu::TestLog::EndMessage;
-		log << tcu::TestLog::ImageSet("Verification result", "Result of rendering")
-			<< tcu::TestLog::Image("Result", "Result",			surface)
-			<< tcu::TestLog::Image("ErrorMask", "ErrorMask",	errorMask)
-			<< tcu::TestLog::EndImageSet;
+	if (!logStash.success)
+		logStash.errorMask = errorMask;
 
-		return false;
-	}
-	else
-	{
-		log << tcu::TestLog::Message << "No invalid pixels found." << tcu::TestLog::EndMessage;
-		log << tcu::TestLog::ImageSet("Verification result", "Result of rendering")
-			<< tcu::TestLog::Image("Result", "Result", surface)
-			<< tcu::TestLog::EndImageSet;
-
-		return true;
-	}
+	return logStash.success;
 }
 
 
@@ -907,7 +907,14 @@
 	CLIPMODE_LAST
 };
 
-bool verifyMultisampleLineGroupRasterization (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, ClipMode clipMode, VerifyTriangleGroupRasterizationLogStash* logStash = DE_NULL, const bool vulkanLinesTest = false)
+bool verifyMultisampleLineGroupRasterization (const tcu::Surface&						surface,
+											  const LineSceneSpec&						scene,
+											  const RasterizationArguments&				args,
+											  tcu::TestLog&								log,
+											  ClipMode									clipMode,
+											  VerifyTriangleGroupRasterizationLogStash*	logStash,
+											  const bool								vulkanLinesTest,
+											  const bool								strictMode)
 {
 	// Multisampled line == 2 triangles
 
@@ -948,7 +955,9 @@
 		};
 
 		const tcu::Vec2 lineDir			= tcu::normalize(lineScreenSpace[1] - lineScreenSpace[0]);
-		const tcu::Vec2 lineNormalDir	= tcu::Vec2(lineDir.y(), -lineDir.x());
+		const tcu::Vec2 lineNormalDir	= strictMode ? tcu::Vec2(lineDir.y(), -lineDir.x())
+										: isLineXMajor(lineScreenSpace[0], lineScreenSpace[1]) ? tcu::Vec2(0.0f, 1.0f)
+										: tcu::Vec2(1.0f, 0.0f);
 
 		if (scene.stippleEnable)
 		{
@@ -1060,10 +1069,20 @@
 		}
 	}
 
+	if (logStash != DE_NULL)
+	{
+		logStash->messages.push_back("Rasterization clipping mode: " + std::string(clipMode == CLIPMODE_USE_CLIPPING_BOX ? "CLIPMODE_USE_CLIPPING_BOX" : "CLIPMODE_NO_CLIPPING") + ".");
+		logStash->messages.push_back("Rasterization line draw strictness mode: " + std::string(strictMode ? "strict" : "non-strict") + ".");
+	}
+
 	return verifyTriangleGroupRasterization(surface, triangleScene, args, log, scene.verificationMode, logStash, vulkanLinesTest);
 }
 
-bool verifyMultisampleLineGroupInterpolation (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log)
+static bool verifyMultisampleLineGroupInterpolationInternal (const tcu::Surface&						surface,
+													  const LineSceneSpec&						scene,
+													  const RasterizationArguments&				args,
+													  VerifyTriangleGroupInterpolationLogStash&	logStash,
+													  const bool								strictMode)
 {
 	// Multisampled line == 2 triangles
 
@@ -1074,11 +1093,15 @@
 	triangleScene.triangles.resize(2 * scene.lines.size());
 	for (int lineNdx = 0; lineNdx < (int)scene.lines.size(); ++lineNdx)
 	{
+		// Need the w-coordinates a couple of times
+		const float		wa = scene.lines[lineNdx].positions[0].w();
+		const float		wb = scene.lines[lineNdx].positions[1].w();
+
 		// Transform to screen space, add pixel offsets, convert back to normalized device space, and test as triangles
 		const tcu::Vec2 lineNormalizedDeviceSpace[2] =
 		{
-			tcu::Vec2(scene.lines[lineNdx].positions[0].x() / scene.lines[lineNdx].positions[0].w(), scene.lines[lineNdx].positions[0].y() / scene.lines[lineNdx].positions[0].w()),
-			tcu::Vec2(scene.lines[lineNdx].positions[1].x() / scene.lines[lineNdx].positions[1].w(), scene.lines[lineNdx].positions[1].y() / scene.lines[lineNdx].positions[1].w()),
+			tcu::Vec2(scene.lines[lineNdx].positions[0].x() / wa, scene.lines[lineNdx].positions[0].y() / wa),
+			tcu::Vec2(scene.lines[lineNdx].positions[1].x() / wb, scene.lines[lineNdx].positions[1].y() / wb),
 		};
 		const tcu::Vec2 lineScreenSpace[2] =
 		{
@@ -1087,7 +1110,9 @@
 		};
 
 		const tcu::Vec2 lineDir			= tcu::normalize(lineScreenSpace[1] - lineScreenSpace[0]);
-		const tcu::Vec2 lineNormalDir	= tcu::Vec2(lineDir.y(), -lineDir.x());
+		const tcu::Vec2 lineNormalDir	= strictMode ? tcu::Vec2(lineDir.y(), -lineDir.x())
+										: isLineXMajor(lineScreenSpace[0], lineScreenSpace[1]) ? tcu::Vec2(0.0f, 1.0f)
+										: tcu::Vec2(1.0f, 0.0f);
 
 		const tcu::Vec2 lineQuadScreenSpace[4] =
 		{
@@ -1104,9 +1129,18 @@
 			lineQuadScreenSpace[3] / viewportSize * 2.0f - tcu::Vec2(1.0f, 1.0f),
 		};
 
-		triangleScene.triangles[lineNdx*2 + 0].positions[0] = tcu::Vec4(lineQuadNormalizedDeviceSpace[0].x(), lineQuadNormalizedDeviceSpace[0].y(), 0.0f, 1.0f);
-		triangleScene.triangles[lineNdx*2 + 0].positions[1] = tcu::Vec4(lineQuadNormalizedDeviceSpace[1].x(), lineQuadNormalizedDeviceSpace[1].y(), 0.0f, 1.0f);
-		triangleScene.triangles[lineNdx*2 + 0].positions[2] = tcu::Vec4(lineQuadNormalizedDeviceSpace[2].x(), lineQuadNormalizedDeviceSpace[2].y(), 0.0f, 1.0f);
+		// Re-construct un-projected geometry using the quantised positions
+		const tcu::Vec4 lineQuadUnprojected[4] =
+		{
+			tcu::Vec4(lineQuadNormalizedDeviceSpace[0].x() * wa, lineQuadNormalizedDeviceSpace[0].y() * wa, 0.0f, wa),
+			tcu::Vec4(lineQuadNormalizedDeviceSpace[1].x() * wa, lineQuadNormalizedDeviceSpace[1].y() * wa, 0.0f, wa),
+			tcu::Vec4(lineQuadNormalizedDeviceSpace[2].x() * wb, lineQuadNormalizedDeviceSpace[2].y() * wb, 0.0f, wb),
+			tcu::Vec4(lineQuadNormalizedDeviceSpace[3].x() * wb, lineQuadNormalizedDeviceSpace[3].y() * wb, 0.0f, wb),
+		};
+
+		triangleScene.triangles[lineNdx*2 + 0].positions[0] = lineQuadUnprojected[0];
+		triangleScene.triangles[lineNdx*2 + 0].positions[1] = lineQuadUnprojected[1];
+		triangleScene.triangles[lineNdx*2 + 0].positions[2] = lineQuadUnprojected[2];
 
 		triangleScene.triangles[lineNdx*2 + 0].sharedEdge[0] = false;
 		triangleScene.triangles[lineNdx*2 + 0].sharedEdge[1] = false;
@@ -1116,9 +1150,9 @@
 		triangleScene.triangles[lineNdx*2 + 0].colors[1] = scene.lines[lineNdx].colors[0];
 		triangleScene.triangles[lineNdx*2 + 0].colors[2] = scene.lines[lineNdx].colors[1];
 
-		triangleScene.triangles[lineNdx*2 + 1].positions[0] = tcu::Vec4(lineQuadNormalizedDeviceSpace[0].x(), lineQuadNormalizedDeviceSpace[0].y(), 0.0f, 1.0f);
-		triangleScene.triangles[lineNdx*2 + 1].positions[1] = tcu::Vec4(lineQuadNormalizedDeviceSpace[2].x(), lineQuadNormalizedDeviceSpace[2].y(), 0.0f, 1.0f);
-		triangleScene.triangles[lineNdx*2 + 1].positions[2] = tcu::Vec4(lineQuadNormalizedDeviceSpace[3].x(), lineQuadNormalizedDeviceSpace[3].y(), 0.0f, 1.0f);
+		triangleScene.triangles[lineNdx*2 + 1].positions[0] = lineQuadUnprojected[0];
+		triangleScene.triangles[lineNdx*2 + 1].positions[1] = lineQuadUnprojected[2];
+		triangleScene.triangles[lineNdx*2 + 1].positions[2] = lineQuadUnprojected[3];
 
 		triangleScene.triangles[lineNdx*2 + 1].sharedEdge[0] = true;
 		triangleScene.triangles[lineNdx*2 + 1].sharedEdge[1] = false;
@@ -1129,7 +1163,116 @@
 		triangleScene.triangles[lineNdx*2 + 1].colors[2] = scene.lines[lineNdx].colors[1];
 	}
 
-	return verifyTriangleGroupInterpolationWithInterpolator(surface, triangleScene, args, log, MultisampleLineInterpolator(scene));
+	if (strictMode)
+	{
+		// Strict mode interpolation should be purely in the direction of the line-segment
+		logStash.messages.push_back("Verify using line interpolator");
+		return verifyTriangleGroupInterpolationWithInterpolator(surface, triangleScene, args, logStash, MultisampleLineInterpolator(scene));
+	}
+	else
+	{
+		// For non-strict lines some allowance needs to be inplace for a few different styles of implementation.
+		//
+		// Some implementations duplicate the attributes at the endpoints to the corners of the triangle
+		// deconstruted parallelogram. Gradients along the line will be seen to travel in the major axis,
+		// with values effectively duplicated in the minor axis direction. In other cases, implementations
+		// will use the original parameters of the line to calculate attribute interpolation so it will
+		// follow the direction of the line-segment.
+		logStash.messages.push_back("Verify using trangle interpolator");
+		if (!verifyTriangleGroupInterpolationWithInterpolator(surface, triangleScene, args, logStash, TriangleInterpolator(triangleScene)))
+		{
+			logStash.messages.push_back("Verify using line interpolator");
+			return verifyTriangleGroupInterpolationWithInterpolator(surface, triangleScene, args, logStash, MultisampleLineInterpolator(scene));
+		}
+		return true;
+	}
+}
+
+static void logTriangleGroupnterpolationStash (const tcu::Surface& surface, tcu::TestLog& log, VerifyTriangleGroupInterpolationLogStash& logStash)
+{
+	// Output results
+	log << tcu::TestLog::Message << "Verifying rasterization result." << tcu::TestLog::EndMessage;
+
+	for (size_t msgNdx = 0; msgNdx < logStash.messages.size(); ++msgNdx)
+		log << tcu::TestLog::Message << logStash.messages[msgNdx] << tcu::TestLog::EndMessage;
+
+	// report result
+	if (!logStash.success)
+	{
+		log << tcu::TestLog::Message << logStash.invalidPixels << " invalid pixel(s) found." << tcu::TestLog::EndMessage;
+		log << tcu::TestLog::ImageSet("Verification result", "Result of rendering")
+			<< tcu::TestLog::Image("Result", "Result",			surface)
+			<< tcu::TestLog::Image("ErrorMask", "ErrorMask",	logStash.errorMask)
+			<< tcu::TestLog::EndImageSet;
+	}
+	else
+	{
+		log << tcu::TestLog::Message << "No invalid pixels found." << tcu::TestLog::EndMessage;
+		log << tcu::TestLog::ImageSet("Verification result", "Result of rendering")
+			<< tcu::TestLog::Image("Result", "Result", surface)
+			<< tcu::TestLog::EndImageSet;
+	}
+}
+
+static bool verifyMultisampleLineGroupInterpolation (const tcu::Surface&			surface,
+													 const LineSceneSpec&			scene,
+													 const RasterizationArguments&	args,
+													 tcu::TestLog&					log,
+													 const bool						strictMode = true)
+{
+	bool										result					= false;
+	VerifyTriangleGroupInterpolationLogStash	nonStrictModeLogStash;
+	VerifyTriangleGroupInterpolationLogStash	strictModeLogStash;
+
+	nonStrictModeLogStash.messages.push_back("Non-strict line draw mode.");
+	strictModeLogStash.messages.push_back("Strict mode line draw mode.");
+
+	if (strictMode)
+	{
+		result = verifyMultisampleLineGroupInterpolationInternal(surface,scene, args, strictModeLogStash, strictMode);
+
+		logTriangleGroupnterpolationStash(surface, log, strictModeLogStash);
+	}
+	else
+	{
+		if (verifyMultisampleLineGroupInterpolationInternal(surface,scene, args, nonStrictModeLogStash, false))
+		{
+			logTriangleGroupnterpolationStash(surface, log, nonStrictModeLogStash);
+
+			result	= true;
+		}
+		else if (verifyMultisampleLineGroupInterpolationInternal(surface,scene, args, strictModeLogStash, true))
+		{
+			logTriangleGroupnterpolationStash(surface, log, strictModeLogStash);
+
+			result	= true;
+		}
+		else
+		{
+			logTriangleGroupnterpolationStash(surface, log, nonStrictModeLogStash);
+			logTriangleGroupnterpolationStash(surface, log, strictModeLogStash);
+		}
+
+		// In the non-strict line case, bresenham is also permissable, though not specified. This is due
+		// to a change in how lines are specified in Vulkan versus GLES; in GLES bresenham lines using the
+		// diamond-exit rule were the preferred way to draw single pixel non-antialiased lines, and not all
+		// GLES implementations are able to disable this behaviour.
+		if (result == false)
+		{
+			log << tcu::TestLog::Message << "Checking line rasterisation using verifySinglesampleNarrowLineGroupInterpolation for nonStrict lines" << tcu::TestLog::EndMessage;
+			if (args.numSamples <= 1 &&
+				scene.lineWidth == 1.0f &&
+				verifyLineGroupInterpolationWithProjectedWeights(surface, scene, args, log))
+			{
+				log << tcu::TestLog::Message << "verifySinglesampleNarrowLineGroupInterpolation for nonStrict lines Passed" << tcu::TestLog::EndMessage;
+
+				result	= true;
+			}
+		}
+
+	}
+
+	return result;
 }
 
 bool verifyMultisamplePointGroupRasterization (const tcu::Surface& surface, const PointSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log)
@@ -2346,11 +2489,14 @@
 	}
 }
 
-static void verifyTriangleGroupRasterizationLog (const tcu::Surface& surface, tcu::TestLog& log, VerifyTriangleGroupRasterizationLogStash& logStash)
+static void logTriangleGroupRasterizationStash (const tcu::Surface& surface, tcu::TestLog& log, VerifyTriangleGroupRasterizationLogStash& logStash)
 {
 	// Output results
 	log << tcu::TestLog::Message << "Verifying rasterization result." << tcu::TestLog::EndMessage;
 
+	for (size_t msgNdx = 0; msgNdx < logStash.messages.size(); ++msgNdx)
+		log << tcu::TestLog::Message << logStash.messages[msgNdx] << tcu::TestLog::EndMessage;
+
 	if (!logStash.result)
 	{
 		log << tcu::TestLog::Message << "Invalid pixels found:\n\t"
@@ -2393,7 +2539,7 @@
 	tcu::Surface		errorMask					(surface.getWidth(), surface.getHeight());
 	bool				result						= false;
 
-	// subpixel bits in in a valid range?
+	// subpixel bits in a valid range?
 
 	if (subPixelBits < 0)
 	{
@@ -2466,6 +2612,10 @@
 
 	tcu::clear(errorMask.getAccess(), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
 
+	// Use these to sanity check there is something drawn when a test expects something else than an empty picture.
+	bool referenceEmpty	= true;
+	bool resultEmpty	= true;
+
 	for (int y = 0; y < surface.getHeight(); ++y)
 	for (int x = 0; x < surface.getWidth(); ++x)
 	{
@@ -2474,6 +2624,9 @@
 		const bool			imageFullCoverage	= compareColors(color, triangleColor, args.redBits, args.greenBits, args.blueBits);
 		CoverageType		referenceCoverage	= (CoverageType)coverageMap.getAccess().getPixelUint(x, y).x();
 
+		if (!imageNoCoverage)
+			resultEmpty = false;
+
 		switch (referenceCoverage)
 		{
 			case COVERAGE_NONE:
@@ -2487,6 +2640,7 @@
 
 			case COVERAGE_PARTIAL:
 				{
+					referenceEmpty = false;
 					bool foundFragment = false;
 					if (vulkanLinesTest == true)
 					{
@@ -2513,6 +2667,7 @@
 				break;
 
 			case COVERAGE_FULL:
+				referenceEmpty = false;
 				if (!imageFullCoverage)
 				{
 					// no coverage where there should be
@@ -2533,7 +2688,8 @@
 	if (((mode == VERIFICATIONMODE_STRICT) && (missingPixels + unexpectedPixels > 0)) ||
 		((mode == VERIFICATIONMODE_WEAK)   && (missingPixels + unexpectedPixels > weakVerificationThreshold)) ||
 		((mode == VERIFICATIONMODE_WEAKER) && (missingPixels + unexpectedPixels > weakerVerificationThreshold)) ||
-		((mode == VERIFICATIONMODE_SMOOTH) && (missingPixels > weakVerificationThreshold)))
+		((mode == VERIFICATIONMODE_SMOOTH) && (missingPixels > weakVerificationThreshold)) ||
+		referenceEmpty != resultEmpty)
 	{
 		result = false;
 	}
@@ -2553,7 +2709,7 @@
 
 		if (logStash == DE_NULL)
 		{
-			verifyTriangleGroupRasterizationLog(surface, log, *tempLogStash);
+			logTriangleGroupRasterizationStash(surface, log, *tempLogStash);
 			delete tempLogStash;
 		}
 	}
@@ -2566,43 +2722,63 @@
 	const bool multisampled = args.numSamples != 0;
 
 	if (multisampled)
-		return verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_NO_CLIPPING, DE_NULL);
+		return verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_NO_CLIPPING, DE_NULL, false, true);
 	else
 		return verifySinglesampleLineGroupRasterization(surface, scene, args, log);
 }
 
 bool verifyClippedTriangulatedLineGroupRasterization (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log)
 {
-	return verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_USE_CLIPPING_BOX, DE_NULL);
+	return verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_USE_CLIPPING_BOX, DE_NULL, false, true);
 }
 
-bool verifyRelaxedLineGroupRasterization (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const bool vulkanLinesTest)
+bool verifyRelaxedLineGroupRasterization (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const bool vulkanLinesTest, const bool strict)
 {
-	VerifyTriangleGroupRasterizationLogStash noClippingLogStash;
 	VerifyTriangleGroupRasterizationLogStash useClippingLogStash;
+	VerifyTriangleGroupRasterizationLogStash noClippingLogStash;
+	VerifyTriangleGroupRasterizationLogStash useClippingForcedStrictLogStash;
+	VerifyTriangleGroupRasterizationLogStash noClippingForcedStrictLogStash;
 
-	if (verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_USE_CLIPPING_BOX, &useClippingLogStash, vulkanLinesTest))
+	if (verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_USE_CLIPPING_BOX, &useClippingLogStash, vulkanLinesTest, strict))
 	{
-		log << tcu::TestLog::Message << "Relaxed rasterization succeeded with CLIPMODE_USE_CLIPPING_BOX, details follow." << tcu::TestLog::EndMessage;
-
-		verifyTriangleGroupRasterizationLog(surface, log, useClippingLogStash);
+		logTriangleGroupRasterizationStash(surface, log, useClippingLogStash);
 
 		return true;
 	}
-	else if (verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_NO_CLIPPING, &noClippingLogStash, vulkanLinesTest))
+	else if (verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_NO_CLIPPING, &noClippingLogStash, vulkanLinesTest, strict))
 	{
-		log << tcu::TestLog::Message << "Relaxed rasterization succeeded with CLIPMODE_NO_CLIPPING, details follow." << tcu::TestLog::EndMessage;
+		logTriangleGroupRasterizationStash(surface, log, noClippingLogStash);
 
-		verifyTriangleGroupRasterizationLog(surface, log, noClippingLogStash);
+		return true;
+	}
+	else if (strict == false && verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_USE_CLIPPING_BOX, &useClippingForcedStrictLogStash, vulkanLinesTest, true))
+	{
+		logTriangleGroupRasterizationStash(surface, log, useClippingForcedStrictLogStash);
 
 		return true;
 	}
+	else if (strict == false && verifyMultisampleLineGroupRasterization(surface, scene, args, log, CLIPMODE_NO_CLIPPING, &noClippingForcedStrictLogStash, vulkanLinesTest, true))
+	{
+		logTriangleGroupRasterizationStash(surface, log, noClippingForcedStrictLogStash);
+
+		return true;
+	}
+	else if (strict == false && args.numSamples == 0 && verifyLineGroupRasterization(surface, scene, args, log))
+	{
+		return true;
+	}
 	else
 	{
 		log << tcu::TestLog::Message << "Relaxed rasterization failed, details follow." << tcu::TestLog::EndMessage;
 
-		verifyTriangleGroupRasterizationLog(surface, log, useClippingLogStash);
-		verifyTriangleGroupRasterizationLog(surface, log, noClippingLogStash);
+		logTriangleGroupRasterizationStash(surface, log, useClippingLogStash);
+		logTriangleGroupRasterizationStash(surface, log, noClippingLogStash);
+
+		if (strict == false)
+		{
+			logTriangleGroupRasterizationStash(surface, log, useClippingForcedStrictLogStash);
+			logTriangleGroupRasterizationStash(surface, log, noClippingForcedStrictLogStash);
+		}
 
 		return false;
 	}
@@ -2616,7 +2792,12 @@
 
 bool verifyTriangleGroupInterpolation (const tcu::Surface& surface, const TriangleSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log)
 {
-	return verifyTriangleGroupInterpolationWithInterpolator(surface, scene, args, log, TriangleInterpolator(scene));
+	VerifyTriangleGroupInterpolationLogStash	logStash;
+	const bool									result		= verifyTriangleGroupInterpolationWithInterpolator(surface, scene, args, logStash, TriangleInterpolator(scene));
+
+	logTriangleGroupnterpolationStash(surface, log, logStash);
+
+	return result;
 }
 
 LineInterpolationMethod verifyLineGroupInterpolation (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log)
@@ -2654,9 +2835,9 @@
 	}
 }
 
-bool verifyTriangulatedLineGroupInterpolation (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log)
+bool verifyTriangulatedLineGroupInterpolation (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const bool strictMode)
 {
-	return verifyMultisampleLineGroupInterpolation(surface, scene, args, log);
+	return verifyMultisampleLineGroupInterpolation(surface, scene, args, log, strictMode);
 }
 
 } // tcu
diff --git a/framework/common/tcuRasterizationVerifier.hpp b/framework/common/tcuRasterizationVerifier.hpp
index ffff501..eb8323c 100644
--- a/framework/common/tcuRasterizationVerifier.hpp
+++ b/framework/common/tcuRasterizationVerifier.hpp
@@ -119,10 +119,19 @@
 
 struct VerifyTriangleGroupRasterizationLogStash
 {
-	int				missingPixels;
-	int				unexpectedPixels;
-	tcu::Surface	errorMask;
-	bool			result;
+	std::vector<std::string>	messages;
+	int							missingPixels;
+	int							unexpectedPixels;
+	tcu::Surface				errorMask;
+	bool						result;
+};
+
+struct VerifyTriangleGroupInterpolationLogStash
+{
+	std::vector<std::string>	messages;
+	int							invalidPixels;
+	tcu::Surface				errorMask;
+	bool						success;
 };
 
 /*--------------------------------------------------------------------*//*!
@@ -178,7 +187,7 @@
  *
  * Returns false if both rasterizations are invalid.
  *//*--------------------------------------------------------------------*/
-bool verifyRelaxedLineGroupRasterization (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const bool vulkanLinesTest = false);
+bool verifyRelaxedLineGroupRasterization (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const bool vulkanLinesTest = false, const bool strict = true);
 
 /*--------------------------------------------------------------------*//*!
  * \brief Verify point rasterization result
@@ -223,7 +232,7 @@
  *
  * Returns false if invalid rasterization interpolation is found.
  *//*--------------------------------------------------------------------*/
-bool verifyTriangulatedLineGroupInterpolation (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log);
+bool verifyTriangulatedLineGroupInterpolation (const tcu::Surface& surface, const LineSceneSpec& scene, const RasterizationArguments& args, tcu::TestLog& log, const bool strictMode = true);
 
 } // tcu
 
diff --git a/framework/common/tcuStringTemplate.cpp b/framework/common/tcuStringTemplate.cpp
index d9ddedc..702f949 100644
--- a/framework/common/tcuStringTemplate.cpp
+++ b/framework/common/tcuStringTemplate.cpp
@@ -24,6 +24,8 @@
 #include "tcuStringTemplate.hpp"
 #include "tcuDefs.hpp"
 
+#include "deStringUtil.hpp"
+
 #include <sstream>
 
 using std::string;
@@ -51,6 +53,10 @@
 	m_template = str;
 }
 
+const string kSingleLineFlag = "single-line";
+const string kOptFlag = "opt";
+const string kDefaultFlag = "default=";
+
 string StringTemplate::specialize (const map<string, string>& params) const
 {
 	ostringstream res;
@@ -73,20 +79,27 @@
 			string	paramStr		= m_template.substr(paramNdx+2, paramEndNdx-2-paramNdx);
 			bool	paramSingleLine	= false;
 			bool	paramOptional	= false;
+			bool	paramDefault	= false;
 			string	paramName;
+			string	defaultValue;
 			size_t colonNdx = paramStr.find(":");
 			if (colonNdx != string::npos)
 			{
 				paramName = paramStr.substr(0, colonNdx);
 				string flagsStr = paramStr.substr(colonNdx+1);
-				if (flagsStr == "single-line")
+				if (flagsStr == kSingleLineFlag)
 				{
 					paramSingleLine = true;
 				}
-				else if (flagsStr == "opt")
+				else if (flagsStr == kOptFlag)
 				{
 					paramOptional = true;
 				}
+				else if (de::beginsWith(flagsStr, kDefaultFlag))
+				{
+					paramDefault = true;
+					defaultValue = flagsStr.substr(kDefaultFlag.size());
+				}
 				else
 				{
 					TCU_THROW(InternalError, (string("Unrecognized flag") + paramStr).c_str());
@@ -109,6 +122,8 @@
 				else
 					res << val;
 			}
+			else if (paramDefault)
+				res << defaultValue;
 			else if (!paramOptional)
 				TCU_THROW(InternalError, (string("Value for parameter '") + paramName + "' not found in map").c_str());
 
diff --git a/framework/delibs/debase/deInt32.h b/framework/delibs/debase/deInt32.h
index 4cb5b09..781ffa9 100644
--- a/framework/delibs/debase/deInt32.h
+++ b/framework/delibs/debase/deInt32.h
@@ -535,6 +535,18 @@
 	return a/b + ((a%b) ? 1 : 0);
 }
 
+/*--------------------------------------------------------------------*//*!
+ * \brief Return value a rounded up to nearest multiple of b.
+ * \param a		Input value.
+ * \param b		Alignment to use.
+ * \return a if already aligned to b, otherwise next largest aligned value
+ *//*--------------------------------------------------------------------*/
+DE_INLINE deInt32 deRoundUp32(deInt32 a, deInt32 b)
+{
+	deInt32 d = a / b;
+	return d * b == a ? a : (d + 1) * b;
+}
+
 /* \todo [petri] Move to deInt64.h? */
 
 DE_INLINE deInt32 deMulAsr32 (deInt32 a, deInt32 b, int shift)
diff --git a/framework/opengl/gluShaderUtil.cpp b/framework/opengl/gluShaderUtil.cpp
index e6011e7..1016e46 100644
--- a/framework/opengl/gluShaderUtil.cpp
+++ b/framework/opengl/gluShaderUtil.cpp
@@ -152,12 +152,12 @@
 		"tess_control",
 		"tess_eval",
 		"compute",
-		"unused for GL",
-		"unused for GL",
-		"unused for GL",
-		"unused for GL",
-		"unused for GL",
-		"unused for GL",
+		"ray_gen",
+		"any_hit",
+		"closest_hit",
+		"miss",
+		"intersection",
+		"callable",
 	};
 
 	DE_STATIC_ASSERT(DE_LENGTH_OF_ARRAY(s_names) == SHADERTYPE_LAST);
diff --git a/framework/opengl/gluShaderUtil.hpp b/framework/opengl/gluShaderUtil.hpp
index af711b3..8d857af 100644
--- a/framework/opengl/gluShaderUtil.hpp
+++ b/framework/opengl/gluShaderUtil.hpp
@@ -351,6 +351,7 @@
 
 template <> struct DataTypeTraits<deUint16>			{ enum { DATATYPE = TYPE_FLOAT16			}; };
 template <> struct DataTypeTraits<float>			{ enum { DATATYPE = TYPE_FLOAT				}; };
+template <> struct DataTypeTraits<double>			{ enum { DATATYPE = TYPE_DOUBLE				}; };
 template <> struct DataTypeTraits<bool>				{ enum { DATATYPE = TYPE_BOOL				}; };
 template <> struct DataTypeTraits<int>				{ enum { DATATYPE = TYPE_INT				}; };
 template <> struct DataTypeTraits<deUint32>			{ enum { DATATYPE = TYPE_UINT				}; };
@@ -372,6 +373,15 @@
 template <> struct DataTypeTraits<tcu::Mat4x2_16b>	{ enum { DATATYPE = TYPE_FLOAT16_MAT4X2		}; };
 template <> struct DataTypeTraits<tcu::Mat4x3_16b>	{ enum { DATATYPE = TYPE_FLOAT16_MAT4X3		}; };
 template <> struct DataTypeTraits<tcu::Mat4_16b>	{ enum { DATATYPE = TYPE_FLOAT16_MAT4		}; };
+template <> struct DataTypeTraits<tcu::Matrix2d>	{ enum { DATATYPE = TYPE_DOUBLE_MAT2		}; };
+template <> struct DataTypeTraits<tcu::Matrix3d>	{ enum { DATATYPE = TYPE_DOUBLE_MAT3		}; };
+template <> struct DataTypeTraits<tcu::Matrix4d>	{ enum { DATATYPE = TYPE_DOUBLE_MAT4		}; };
+template <> struct DataTypeTraits<tcu::Mat2x3d>		{ enum { DATATYPE = TYPE_DOUBLE_MAT2X3		}; };
+template <> struct DataTypeTraits<tcu::Mat2x4d>		{ enum { DATATYPE = TYPE_DOUBLE_MAT2X4		}; };
+template <> struct DataTypeTraits<tcu::Mat3x2d>		{ enum { DATATYPE = TYPE_DOUBLE_MAT3X2		}; };
+template <> struct DataTypeTraits<tcu::Mat3x4d>		{ enum { DATATYPE = TYPE_DOUBLE_MAT3X4		}; };
+template <> struct DataTypeTraits<tcu::Mat4x2d>		{ enum { DATATYPE = TYPE_DOUBLE_MAT4X2		}; };
+template <> struct DataTypeTraits<tcu::Mat4x3d>		{ enum { DATATYPE = TYPE_DOUBLE_MAT4X3		}; };
 
 template <typename T, int Size>
 struct DataTypeTraits<tcu::Vector<T, Size> >
@@ -380,6 +390,7 @@
 	DE_STATIC_ASSERT(TYPE_INT_VEC4 == TYPE_INT + 3);
 	DE_STATIC_ASSERT(TYPE_UINT_VEC4 == TYPE_UINT + 3);
 	DE_STATIC_ASSERT(TYPE_BOOL_VEC4 == TYPE_BOOL + 3);
+	DE_STATIC_ASSERT(TYPE_DOUBLE_VEC4 == TYPE_DOUBLE + 3);
 	enum { DATATYPE = DataTypeTraits<T>::DATATYPE + Size - 1 };
 };
 
diff --git a/framework/qphelper/CMakeLists.txt b/framework/qphelper/CMakeLists.txt
index 2c4fb9d..b3847b9 100644
--- a/framework/qphelper/CMakeLists.txt
+++ b/framework/qphelper/CMakeLists.txt
@@ -43,13 +43,13 @@
 if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/qpReleaseInfo.inl")
 	set(USE_RELEASE_INFO_FILE ON)
 
-elseif (EXISTS "${CMAKE_SOURCE_DIR}/.git" AND GIT_FOUND)
+elseif (EXISTS "${PROJECT_SOURCE_DIR}/.git" AND GIT_FOUND)
 	find_package(PythonInterp 2.7)
 
 	if (PYTHON_EXECUTABLE)
 		message(STATUS "Using git revision as release identifier")
 
-		execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${CMAKE_SOURCE_DIR}/.git rev-parse --git-dir
+		execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${PROJECT_SOURCE_DIR}/.git rev-parse --git-dir
 						OUTPUT_VARIABLE DE_GIT_DIR
 						OUTPUT_STRIP_TRAILING_WHITESPACE)
 
diff --git a/modules/egl/teglBufferAgeTests.cpp b/modules/egl/teglBufferAgeTests.cpp
index e1a3dc2..7a9f80c 100644
--- a/modules/egl/teglBufferAgeTests.cpp
+++ b/modules/egl/teglBufferAgeTests.cpp
@@ -390,6 +390,14 @@
 	const Library&	egl	= m_eglTestCtx.getLibrary();
 
 	m_eglDisplay = eglu::getAndInitDisplay(m_eglTestCtx.getNativeDisplay());
+
+	if (eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_buffer_age") == false)
+	{
+		egl.terminate(m_eglDisplay);
+		m_eglDisplay = EGL_NO_DISPLAY;
+		TCU_THROW(NotSupportedError, "EGL_EXT_buffer_age is not supported");
+	}
+
 	m_eglConfig	 = getEGLConfig(m_eglTestCtx.getLibrary(), m_eglDisplay, m_preserveColorBuffer);
 
 	if (m_eglConfig == DE_NULL)
@@ -401,9 +409,6 @@
 
 	m_eglTestCtx.initGLFunctions(&m_gl, glu::ApiType::es(2,0));
 
-	if (eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_buffer_age") == false)
-		TCU_THROW(NotSupportedError, "EGL_EXT_buffer_age is not supported");
-
 	m_gles2Renderer = new GLES2Renderer(m_gl);
 	m_refRenderer   = new ReferenceRenderer();
 }
diff --git a/modules/egl/teglCreateSurfaceTests.cpp b/modules/egl/teglCreateSurfaceTests.cpp
index de9d6d7..61ed6cf 100644
--- a/modules/egl/teglCreateSurfaceTests.cpp
+++ b/modules/egl/teglCreateSurfaceTests.cpp
@@ -133,6 +133,7 @@
 			EGLU_CHECK_MSG(egl, "eglCreatePlatformPixmapSurfaceEXT() failed");
 		break;
 		case EGL15:
+			checkEGL15Support(egl, display);
 			surface = egl.createPlatformPixmapSurface(display, config, pixmap.getPlatformNative(), DE_NULL);
 			EGLU_CHECK_MSG(egl, "eglCreatePlatformPixmapSurface() failed");
 		break;
diff --git a/modules/egl/teglImageFormatTests.cpp b/modules/egl/teglImageFormatTests.cpp
index 3e3c333..1dee13c 100644
--- a/modules/egl/teglImageFormatTests.cpp
+++ b/modules/egl/teglImageFormatTests.cpp
@@ -1007,6 +1007,8 @@
 {
 	const Library& egl = m_eglTestCtx.getLibrary();
 
+	m_img.clear();
+
 	for (int contexNdx = 0 ; contexNdx < (int)m_apiContexts.size(); contexNdx++)
 		delete m_apiContexts[contexNdx];
 
diff --git a/modules/egl/teglPartialUpdateTests.cpp b/modules/egl/teglPartialUpdateTests.cpp
index a70374a..f496533 100644
--- a/modules/egl/teglPartialUpdateTests.cpp
+++ b/modules/egl/teglPartialUpdateTests.cpp
@@ -375,6 +375,14 @@
 	const Library&	egl	= m_eglTestCtx.getLibrary();
 
 	m_eglDisplay		= eglu::getAndInitDisplay(m_eglTestCtx.getNativeDisplay());
+
+	if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_KHR_partial_update"))
+	{
+		egl.terminate(m_eglDisplay);
+		m_eglDisplay = EGL_NO_DISPLAY;
+		TCU_THROW(NotSupportedError, "EGL_KHR_partial_update is not supported");
+	}
+
 	m_eglConfig			= getEGLConfig(m_eglTestCtx.getLibrary(), m_eglDisplay);
 
 	//create surface and context and make them current
@@ -385,9 +393,6 @@
 
 	m_supportBufferAge = eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_buffer_age");
 
-	if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_KHR_partial_update"))
-		TCU_THROW(NotSupportedError, "EGL_KHR_partial_update is not supported");
-
 	m_gles2Renderer = new GLES2Renderer(m_gl);
 	m_refRenderer   = new ReferenceRenderer();
 }
diff --git a/modules/egl/teglResizeTests.cpp b/modules/egl/teglResizeTests.cpp
index 4686d11..30b5f5b 100644
--- a/modules/egl/teglResizeTests.cpp
+++ b/modules/egl/teglResizeTests.cpp
@@ -195,14 +195,16 @@
 
 void ResizeTest::deinit (void)
 {
-	if (m_display != EGL_NO_DISPLAY)
-		m_eglTestCtx.getLibrary().terminate(m_display);
-
 	m_config		= DE_NULL;
-	m_display		= EGL_NO_DISPLAY;
 	m_context.clear();
 	m_surface.clear();
 	m_nativeWindow.clear();
+
+	if (m_display != EGL_NO_DISPLAY)
+	{
+		m_eglTestCtx.getLibrary().terminate(m_display);
+		m_display	= EGL_NO_DISPLAY;
+	}
 }
 
 void ResizeTest::resize (IVec2 size)
diff --git a/modules/egl/teglSimpleConfigCase.cpp b/modules/egl/teglSimpleConfigCase.cpp
index fc02455..be0e1c6 100644
--- a/modules/egl/teglSimpleConfigCase.cpp
+++ b/modules/egl/teglSimpleConfigCase.cpp
@@ -148,6 +148,11 @@
 	return c.colorComponentType() != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT;
 }
 
+static bool notYUV (const eglu::CandidateConfig& c)
+{
+	return c.get(EGL_COLOR_BUFFER_TYPE) != EGL_YUV_BUFFER_EXT;
+}
+
 void getDefaultFilterLists (vector<NamedFilterList>& lists, const FilterList& baseFilters)
 {
 	static const struct
@@ -215,7 +220,8 @@
 				<< notColorBits<5, 5, 5, 1>
 				<< notColorBits<8, 8, 8, 8>
 				<< isConformant
-				<< notFloat;
+				<< notFloat
+				<< notYUV;
 
 		lists.push_back(filters);
 	}
diff --git a/modules/gles3/functional/es3fPrimitiveRestartTests.cpp b/modules/gles3/functional/es3fPrimitiveRestartTests.cpp
index d926aec..d82ca34 100644
--- a/modules/gles3/functional/es3fPrimitiveRestartTests.cpp
+++ b/modules/gles3/functional/es3fPrimitiveRestartTests.cpp
@@ -215,15 +215,30 @@
 void PrimitiveRestartCase::init (void)
 {
 	// Create shader program.
-
-	static const char* vertShaderSource =
-		"#version 300 es\n"
-		"in highp vec4 a_position;\n"
-		"\n"
-		"void main()\n"
-		"{\n"
-		"	gl_Position = a_position;\n"
-		"}\n";
+	std::string vertShaderSource;
+	if (m_primType == PRIMITIVE_POINTS)
+	{
+		vertShaderSource =
+			"#version 300 es\n"
+			"in highp vec4 a_position;\n"
+			"\n"
+			"void main()\n"
+			"{\n"
+			"	gl_Position = a_position;\n"
+			"	gl_PointSize = 1.0f;\n"
+			"}\n";
+	}
+	else
+	{
+		vertShaderSource =
+			"#version 300 es\n"
+			"in highp vec4 a_position;\n"
+			"\n"
+			"void main()\n"
+			"{\n"
+			"	gl_Position = a_position;\n"
+			"}\n";
+	}
 
 	static const char* fragShaderSource =
 		"#version 300 es\n"
diff --git a/modules/gles3/functional/es3fShaderDerivateTests.cpp b/modules/gles3/functional/es3fShaderDerivateTests.cpp
index 87f629b..315d884 100644
--- a/modules/gles3/functional/es3fShaderDerivateTests.cpp
+++ b/modules/gles3/functional/es3fShaderDerivateTests.cpp
@@ -501,7 +501,7 @@
 		const tcu::Vec4	resultDerivative		= readDerivate(result, derivScale, derivBias, x, y);
 
 		// sample at the front of the back pixel and the back of the front pixel to cover the whole area of
-		// legal sample positions. In general case this is NOT OK, but we know that the target funtion is
+		// legal sample positions. In general case this is NOT OK, but we know that the target function is
 		// (mostly*) linear which allows us to take the sample points at arbitrary points. This gets us the
 		// maximum difference possible in exponents which are used in error bound calculations.
 		// * non-linearity may happen around zero or with very high function values due to subnorms not
@@ -616,17 +616,20 @@
 	SurfaceType				m_surfaceType;
 	int						m_numSamples;
 	deUint32				m_hint;
+
+	bool					m_useAsymmetricCoords;
 };
 
 TriangleDerivateCase::TriangleDerivateCase (Context& context, const char* name, const char* description)
-	: TestCase			(context, name, description)
-	, m_dataType		(glu::TYPE_LAST)
-	, m_precision		(glu::PRECISION_LAST)
-	, m_coordDataType	(glu::TYPE_LAST)
-	, m_coordPrecision	(glu::PRECISION_LAST)
-	, m_surfaceType		(SURFACETYPE_DEFAULT_FRAMEBUFFER)
-	, m_numSamples		(0)
-	, m_hint			(GL_DONT_CARE)
+	: TestCase				(context, name, description)
+	, m_dataType			(glu::TYPE_LAST)
+	, m_precision			(glu::PRECISION_LAST)
+	, m_coordDataType		(glu::TYPE_LAST)
+	, m_coordPrecision		(glu::PRECISION_LAST)
+	, m_surfaceType			(SURFACETYPE_DEFAULT_FRAMEBUFFER)
+	, m_numSamples			(0)
+	, m_hint				(GL_DONT_CARE)
+	, m_useAsymmetricCoords	(false)
 {
 	DE_ASSERT(m_surfaceType != SURFACETYPE_DEFAULT_FRAMEBUFFER || m_numSamples == 0);
 }
@@ -718,8 +721,8 @@
 	}
 
 	m_testCtx.getLog() << TestLog::Message << "in: " << m_coordMin << " -> " << m_coordMax << "\n"
-										   << "v_coord.x = in.x * x\n"
-										   << "v_coord.y = in.y * y\n"
+										   << (m_useAsymmetricCoords ? "v_coord.x = in.x * (x+y)/2\n" : "v_coord.x = in.x * x\n")
+										   << (m_useAsymmetricCoords ? "v_coord.y = in.y * (x+y)/2\n" : "v_coord.y = in.y * y\n")
 										   << "v_coord.z = in.z * (x+y)/2\n"
 										   << "v_coord.w = in.w * (1 - (x+y)/2)\n"
 					   << TestLog::EndMessage
@@ -736,13 +739,25 @@
 			 1.0f, -1.0f, 0.0f, 1.0f,
 			 1.0f,  1.0f, 0.0f, 1.0f
 		};
-		const float coords[] =
+		float coords[] =
 		{
 			m_coordMin.x(), m_coordMin.y(), m_coordMin.z(),							m_coordMax.w(),
 			m_coordMin.x(), m_coordMax.y(), (m_coordMin.z()+m_coordMax.z())*0.5f,	(m_coordMin.w()+m_coordMax.w())*0.5f,
 			m_coordMax.x(), m_coordMin.y(), (m_coordMin.z()+m_coordMax.z())*0.5f,	(m_coordMin.w()+m_coordMax.w())*0.5f,
 			m_coordMax.x(), m_coordMax.y(), m_coordMax.z(),							m_coordMin.w()
 		};
+
+		// For linear tests we want varying data x and y to vary along both axes
+		// to get nonzero x for dfdy and nonzero y for dfdx. To make the gradient
+		// the same for both triangles we set vertices 2 and 3 to middle values.
+		// This way the values go from min -> (max+min) / 2 or (max+min) / 2 -> max
+		// depending on the triangle, but the derivative is the same for both.
+		if (m_useAsymmetricCoords)
+		{
+			coords[4] = coords[8] = (m_coordMin.x() + m_coordMax.x())*0.5f;
+			coords[5] = coords[9] = (m_coordMin.y() + m_coordMax.y())*0.5f;
+		}
+
 		const glu::VertexArrayBinding vertexArrays[] =
 		{
 			glu::va::Float("a_position",	4, 4, 0, &positions[0]),
@@ -989,13 +1004,14 @@
 	, m_func				(func)
 	, m_fragmentTmpl		(fragmentSrcTmpl)
 {
-	m_dataType			= type;
-	m_precision			= precision;
-	m_coordDataType		= m_dataType;
-	m_coordPrecision	= m_precision;
-	m_hint				= hint;
-	m_surfaceType		= surfaceType;
-	m_numSamples		= numSamples;
+	m_dataType				= type;
+	m_precision				= precision;
+	m_coordDataType			= m_dataType;
+	m_coordPrecision		= m_precision;
+	m_hint					= hint;
+	m_surfaceType			= surfaceType;
+	m_numSamples			= numSamples;
+	m_useAsymmetricCoords	= true;
 }
 
 void LinearDerivateCase::init (void)
@@ -1086,8 +1102,9 @@
 
 qpTestResult LinearDerivateCase::verify (const tcu::ConstPixelBufferAccess& result, const tcu::PixelBufferAccess& errorMask)
 {
-	const tcu::Vec4		xScale				= tcu::Vec4(1.0f, 0.0f, 0.5f, -0.5f);
-	const tcu::Vec4		yScale				= tcu::Vec4(0.0f, 1.0f, 0.5f, -0.5f);
+	const tcu::Vec4		xScale				= tcu::Vec4(0.5f, 0.5f, 0.5f, -0.5f);
+	const tcu::Vec4		yScale				= tcu::Vec4(0.5f, 0.5f, 0.5f, -0.5f);
+
 	const tcu::Vec4		surfaceThreshold	= getSurfaceThreshold() / abs(m_derivScale);
 
 	if (m_func == DERIVATE_DFDX || m_func == DERIVATE_DFDY)
@@ -1154,8 +1171,8 @@
 			const tcu::Vec4				valueRamp		= (m_coordMax - m_coordMin);
 			Linear2DFunctionEvaluator	function;
 
-			function.matrix.setRow(0, tcu::Vec3(valueRamp.x() / w, 0.0f, m_coordMin.x()));
-			function.matrix.setRow(1, tcu::Vec3(0.0f, valueRamp.y() / h, m_coordMin.y()));
+			function.matrix.setRow(0, tcu::Vec3((valueRamp.x() / w) / 2.0f, (valueRamp.x() / h) / 2.0f, m_coordMin.x()));
+			function.matrix.setRow(1, tcu::Vec3((valueRamp.y() / w) / 2.0f, (valueRamp.y() / h) / 2.0f, m_coordMin.y()));
 			function.matrix.setRow(2, tcu::Vec3(valueRamp.z() / w, valueRamp.z() / h, m_coordMin.z() + m_coordMin.z()) / 2.0f);
 			function.matrix.setRow(3, tcu::Vec3(-valueRamp.w() / w, -valueRamp.w() / h, m_coordMax.w() + m_coordMax.w()) / 2.0f);
 
@@ -1337,9 +1354,10 @@
 		{
 			for (int x = 0; x < level0.getWidth(); x++)
 			{
-				const float		xf		= (float(x)+0.5f) / float(level0.getWidth());
-				const float		yf		= (float(y)+0.5f) / float(level0.getHeight());
-				const tcu::Vec4	s		= tcu::Vec4(xf, yf, (xf+yf)/2.0f, 1.0f - (xf+yf)/2.0f);
+				const float		xf	= (float(x)+0.5f) / float(level0.getWidth());
+				const float		yf	= (float(y)+0.5f) / float(level0.getHeight());
+				// Make x and y data to have dependency to both axes so that dfdx(tex).y and dfdy(tex).x are nonzero.
+				const tcu::Vec4	s	= tcu::Vec4(xf + yf/2.0f, yf + xf/2.0f, (xf+yf)/2.0f, 1.0f - (xf+yf)/2.0f);
 
 				level0.setPixel(m_texValueMin + (m_texValueMax - m_texValueMin)*s, x, y);
 			}
@@ -1414,8 +1432,8 @@
 
 	tcu::ConstPixelBufferAccess	compareArea			= tcu::getSubregion(result, 1, 1, result.getWidth()-2, result.getHeight()-2);
 	tcu::PixelBufferAccess		maskArea			= tcu::getSubregion(errorMask, 1, 1, errorMask.getWidth()-2, errorMask.getHeight()-2);
-	const tcu::Vec4				xScale				= tcu::Vec4(1.0f, 0.0f, 0.5f, -0.5f);
-	const tcu::Vec4				yScale				= tcu::Vec4(0.0f, 1.0f, 0.5f, -0.5f);
+	const tcu::Vec4				xScale				= tcu::Vec4(1.0f, 0.5f, 0.5f, -0.5f);
+	const tcu::Vec4				yScale				= tcu::Vec4(0.5f, 1.0f, 0.5f, -0.5f);
 	const float					w					= float(result.getWidth());
 	const float					h					= float(result.getHeight());
 
@@ -1489,8 +1507,8 @@
 			const tcu::Vec4				valueRamp		= (m_texValueMax - m_texValueMin);
 			Linear2DFunctionEvaluator	function;
 
-			function.matrix.setRow(0, tcu::Vec3(valueRamp.x() / w, 0.0f, m_texValueMin.x()));
-			function.matrix.setRow(1, tcu::Vec3(0.0f, valueRamp.y() / h, m_texValueMin.y()));
+			function.matrix.setRow(0, tcu::Vec3(valueRamp.x() / w, (valueRamp.x() / h) / 2.0f, m_texValueMin.x()));
+			function.matrix.setRow(1, tcu::Vec3((valueRamp.y() / w) / 2.0f, valueRamp.y() / h, m_texValueMin.y()));
 			function.matrix.setRow(2, tcu::Vec3(valueRamp.z() / w, valueRamp.z() / h, m_texValueMin.z() + m_texValueMin.z()) / 2.0f);
 			function.matrix.setRow(3, tcu::Vec3(-valueRamp.w() / w, -valueRamp.w() / h, m_texValueMax.w() + m_texValueMax.w()) / 2.0f);
 
diff --git a/modules/gles31/functional/es31fFboColorbufferTests.cpp b/modules/gles31/functional/es31fFboColorbufferTests.cpp
index f2fbc7b..2aa857d 100644
--- a/modules/gles31/functional/es31fFboColorbufferTests.cpp
+++ b/modules/gles31/functional/es31fFboColorbufferTests.cpp
@@ -111,6 +111,91 @@
 	const deUint32	m_format;
 };
 
+class FboColorTex2DCase : public FboColorbufferCase
+{
+	public:
+		FboColorTex2DCase (Context& context, const char* name, const char* description, deUint32 texFmt, const IVec2& texSize)
+			: FboColorbufferCase	(context, name, description, texFmt)
+			, m_texFmt				(texFmt)
+			, m_texSize				(texSize)
+	{
+	}
+
+	protected:
+		void preCheck (void)
+		{
+			checkFormatSupport(m_texFmt);
+		}
+
+		void render (tcu::Surface& dst)
+		{
+			tcu::TextureFormat		texFmt		= glu::mapGLInternalFormat(m_texFmt);
+			tcu::TextureFormatInfo	fmtInfo		= tcu::getTextureFormatInfo(texFmt);
+
+			Texture2DShader			texToFboShader	(DataTypes() << glu::TYPE_SAMPLER_2D, getFragmentOutputType(texFmt), fmtInfo.valueMax-fmtInfo.valueMin, fmtInfo.valueMin);
+			deUint32				texToFboShaderID = getCurrentContext()->createProgram(&texToFboShader);
+			deUint32				fbo;
+			deUint32				tex;
+
+			// Setup shader
+			texToFboShader.setUniforms(*getCurrentContext(), texToFboShaderID);
+
+			//  Generate fbo
+			{
+				glu::TransferFormat	transferFmt	= glu::getTransferFormat(texFmt);
+				deUint32			format		= m_texFmt;
+				const IVec2&		size		= m_texSize;
+
+				glGenFramebuffers(1, &fbo);
+				glGenTextures(1, &tex);
+
+				glBindTexture(GL_TEXTURE_2D, tex);
+				glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+				glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+				glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+				glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+				glTexImage2D(GL_TEXTURE_2D, 0, format, size.x(), size.y(), 0, transferFmt.format, transferFmt.dataType, DE_NULL);
+
+				glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+				glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0);
+				checkError();
+				checkFramebufferStatus(GL_FRAMEBUFFER);
+			}
+
+			// Render texture to fbo
+			{
+				const deUint32		format		= GL_RGBA;
+				const deUint32		dataType	= GL_UNSIGNED_BYTE;
+				const int			texW		= 128;
+				const int			texH		= 128;
+				deUint32			tmpTex		= 0;
+				const IVec2&		viewport	= m_texSize;
+				tcu::TextureLevel	data		(glu::mapGLTransferFormat(format, dataType), texW, texH, 1);
+
+				tcu::fillWithComponentGradients(data.getAccess(), Vec4(0.0f), Vec4(1.0f));
+
+				glGenTextures(1, &tmpTex);
+				glBindTexture(GL_TEXTURE_2D, tmpTex);
+				glTexParameteri(GL_TEXTURE_2D,	GL_TEXTURE_WRAP_S,		GL_CLAMP_TO_EDGE);
+				glTexParameteri(GL_TEXTURE_2D,	GL_TEXTURE_WRAP_T,		GL_CLAMP_TO_EDGE);
+				glTexParameteri(GL_TEXTURE_2D,	GL_TEXTURE_MIN_FILTER,	GL_LINEAR);
+				glTexParameteri(GL_TEXTURE_2D,	GL_TEXTURE_MAG_FILTER,	GL_LINEAR);
+				glTexImage2D(GL_TEXTURE_2D, 0, format, texW, texH, 0, format, dataType, data.getAccess().getDataPtr());
+
+				glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+				glViewport(0, 0, viewport.x(), viewport.y());
+				sglr::drawQuad(*getCurrentContext(), texToFboShaderID, Vec3(-1.0f, -1.0f, 0.0f), Vec3(1.0f, 1.0f, 0.0f));
+			}
+
+			readPixels(dst, 0, 0, getWidth(), getHeight(), texFmt, fmtInfo.lookupScale, fmtInfo.lookupBias);
+			checkError();
+		}
+
+	private:
+		deUint32	m_texFmt;
+		IVec2		m_texSize;
+};
+
 class FboColorTexCubeArrayCase : public FboColorbufferCase
 {
 public:
@@ -318,6 +403,13 @@
 		GL_RGB16F
 	};
 
+	static const deUint32 unorm16ColorFormats[] =
+	{
+		GL_R16,
+		GL_RG16,
+		GL_RGBA16
+	};
+
 	// .texcubearray
 	{
 		tcu::TestCaseGroup* texCubeArrayGroup = new tcu::TestCaseGroup(m_testCtx, "texcubearray", "Cube map array texture tests");
@@ -327,6 +419,15 @@
 			texCubeArrayGroup->addChild(new FboColorTexCubeArrayCase(m_context, getFormatName(colorFormats[fmtNdx]), "",
 																	 colorFormats[fmtNdx], IVec3(128, 128, 12)));
 	}
+
+	// .tex2d
+	{
+		tcu::TestCaseGroup* tex2dGroup = new tcu::TestCaseGroup(m_testCtx, "tex2d", "Render to texture");
+		addChild(tex2dGroup);
+
+		for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(unorm16ColorFormats); ndx++)
+			tex2dGroup->addChild(new FboColorTex2DCase(m_context, getFormatName(unorm16ColorFormats[ndx]), "", unorm16ColorFormats[ndx], IVec2(129, 117)));
+	}
 }
 
 } // Functional
diff --git a/modules/gles31/functional/es31fFboTestCase.cpp b/modules/gles31/functional/es31fFboTestCase.cpp
index fcb488a..eef9b96 100644
--- a/modules/gles31/functional/es31fFboTestCase.cpp
+++ b/modules/gles31/functional/es31fFboTestCase.cpp
@@ -250,6 +250,12 @@
 				out.push_back("GL_EXT_color_buffer_float");
 			break;
 
+		case GL_R16:
+		case GL_RG16:
+		case GL_RGBA16:
+			out.push_back("GL_EXT_texture_norm16");
+			break;
+
 		default:
 			break;
 	}
diff --git a/modules/gles31/functional/es31fFboTestUtil.cpp b/modules/gles31/functional/es31fFboTestUtil.cpp
index 4d8ade1..c6173ce 100644
--- a/modules/gles31/functional/es31fFboTestUtil.cpp
+++ b/modules/gles31/functional/es31fFboTestUtil.cpp
@@ -541,6 +541,9 @@
 		case GL_DEPTH_COMPONENT24:	return "depth_component24";
 		case GL_DEPTH32F_STENCIL8:	return "depth32f_stencil8";
 		case GL_DEPTH24_STENCIL8:	return "depth24_stencil8";
+		case GL_R16:				return "r16";
+		case GL_RG16:				return "rg16";
+		case GL_RGBA16:				return "rgba16";
 
 		default:
 			TCU_FAIL("Unknown format");
@@ -575,9 +578,14 @@
 		case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
 			return tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::FLOAT);
 
-		case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
+        case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
 		case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
-			return tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
+	{
+			if (format.type == tcu::TextureFormat::UNORM_INT16 || format.type == tcu::TextureFormat::SNORM_INT16)
+				return tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT16);
+			else
+				return tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
+		}
 
 		case tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER:
 			return tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNSIGNED_INT32);
diff --git a/modules/gles31/functional/es31fSSBOLayoutCase.cpp b/modules/gles31/functional/es31fSSBOLayoutCase.cpp
index 3665383..041db6a 100644
--- a/modules/gles31/functional/es31fSSBOLayoutCase.cpp
+++ b/modules/gles31/functional/es31fSSBOLayoutCase.cpp
@@ -35,11 +35,12 @@
 #include "tcuTestLog.hpp"
 #include "tcuSurface.hpp"
 #include "tcuRenderTarget.hpp"
+#include "deInt32.h"
 #include "deRandom.hpp"
-#include "deStringUtil.hpp"
+#include "deMath.h"
 #include "deMemory.h"
 #include "deString.h"
-#include "deMath.h"
+#include "deStringUtil.hpp"
 
 #include <algorithm>
 #include <map>
@@ -362,12 +363,6 @@
 	}
 }
 
-static inline int deRoundUp32 (int a, int b)
-{
-	int d = a/b;
-	return d*b == a ? a : (d+1)*b;
-}
-
 int computeStd140BaseAlignment (const VarType& type, deUint32 layoutFlags)
 {
 	const int vec4Alignment = (int)sizeof(deUint32)*4;
diff --git a/modules/glshared/glsScissorTests.cpp b/modules/glshared/glsScissorTests.cpp
index 96cbeea..e11e7a3 100644
--- a/modules/glshared/glsScissorTests.cpp
+++ b/modules/glshared/glsScissorTests.cpp
@@ -124,13 +124,27 @@
 	}
 }
 
-glu::ProgramSources genShaders(glu::GLSLVersion version)
+glu::ProgramSources genShaders(glu::GLSLVersion version, bool isPoint)
 {
-	const string vtxSource = "${VERSION}\n"
-							 "${IN} highp vec4 a_position;\n"
-							 "void main(){\n"
-							 "	gl_Position = a_position;\n"
-							 "}\n";
+	string vtxSource;
+
+	if (isPoint)
+	{
+		 vtxSource = "${VERSION}\n"
+					 "${IN} highp vec4 a_position;\n"
+					 "void main(){\n"
+					 "	gl_Position = a_position;\n"
+					 "	gl_PointSize = 1.0;\n"
+					 "}\n";
+	}
+	else
+	{
+		 vtxSource = "${VERSION}\n"
+					 "${IN} highp vec4 a_position;\n"
+					 "void main(){\n"
+					 "	gl_Position = a_position;\n"
+					 "}\n";
+	}
 
 	const string frgSource = "${VERSION}\n"
 							 "${OUT_DECL}"
@@ -177,6 +191,9 @@
 protected:
 	virtual void			render			(GLuint program, const IVec4& viewport) const = 0;
 
+	// Initialize gl_PointSize to 1.0f when drawing points, or the point size is undefined according to spec.
+	virtual bool			isPoint			(void) const = 0;
+
 	glu::RenderContext&		m_renderCtx;
 	const Vec4				m_scissorArea;
 };
@@ -199,7 +216,7 @@
 																1u << de::max(0, 8 - renderFormat.greenBits),
 																1u << de::max(0, 8 - renderFormat.blueBits),
 																1u << de::max(0, 8 - renderFormat.alphaBits)).asFloat();
-	const glu::ShaderProgram	shader			(m_renderCtx, genShaders(glu::getContextTypeGLSLVersion(m_renderCtx.getType())));
+	const glu::ShaderProgram	shader			(m_renderCtx, genShaders(glu::getContextTypeGLSLVersion(m_renderCtx.getType()), isPoint()));
 
 	const RandomViewport		viewport		(m_renderCtx.getRenderTarget(), 256, 256, deStringHash(getName()));
 	const IVec4					relScissorArea	(int(m_scissorArea.x() * (float)viewport.width),
@@ -297,6 +314,7 @@
 
 protected:
 	virtual void				render					(GLuint program, const IVec4& viewport) const;
+	virtual bool				isPoint					(void) const;
 
 private:
 	const Vec4					m_renderArea;
@@ -319,6 +337,11 @@
 {
 }
 
+bool ScissorPrimitiveCase::isPoint (void) const
+{
+	return (m_primitiveType == POINT);
+}
+
 void ScissorPrimitiveCase::render (GLuint program, const IVec4&) const
 {
 	const glw::Functions&		gl				= m_renderCtx.getFunctions();
@@ -410,6 +433,7 @@
 
 protected:
 	virtual void	render				(GLuint program, const IVec4& viewport) const;
+	virtual bool	isPoint				(void) const;
 
 private:
 	const deUint32	m_clearMode; //!< Combination of the flags accepted by glClear
@@ -434,6 +458,11 @@
 		throw tcu::NotSupportedError("Cannot clear stencil; no stencil buffer present", "", __FILE__, __LINE__);
 }
 
+bool ScissorClearCase::isPoint (void) const
+{
+	return false;
+}
+
 void ScissorClearCase::render (GLuint program, const IVec4&) const
 {
 	const glw::Functions&	gl		= m_renderCtx.getFunctions();
@@ -485,6 +514,7 @@
 	enum {SIZE = 64};
 
 	virtual void	render					(GLuint program, const IVec4& viewport) const;
+	virtual bool	isPoint					(void) const;
 
 	FramebufferP	m_fbo;
 };
@@ -520,6 +550,11 @@
 	m_fbo.clear();
 }
 
+bool FramebufferBlitCase::isPoint (void) const
+{
+	return false;
+}
+
 void FramebufferBlitCase::render(GLuint program, const IVec4& viewport) const
 {
 	const glw::Functions&	gl					= m_renderCtx.getFunctions();
@@ -578,6 +613,7 @@
 	static BufferFmtDesc	getBufferFormat			(ClearType type);
 
 	virtual void			render					(GLuint program) const;
+	virtual bool			isPoint					(void) const;
 
 	glu::RenderContext&		m_renderCtx;
 	const ClearType			m_clearType;
@@ -609,7 +645,7 @@
 {
 	TestLog&					log				= m_testCtx.getLog();
 	const glw::Functions&		gl				= m_renderCtx.getFunctions();
-	const glu::ShaderProgram	shader			(m_renderCtx, genShaders(glu::getContextTypeGLSLVersion(m_renderCtx.getType())));
+	const glu::ShaderProgram	shader			(m_renderCtx, genShaders(glu::getContextTypeGLSLVersion(m_renderCtx.getType()), isPoint()));
 
 	const glu::Framebuffer		fbo				(gl);
 	const glu::Renderbuffer		colorbuf		(gl);
@@ -834,6 +870,11 @@
 	}
 }
 
+bool FramebufferClearCase::isPoint (void) const
+{
+	return false;
+}
+
 } // Anonymous
 
 namespace ScissorTestInternal
diff --git a/modules/glshared/glsUniformBlockCase.cpp b/modules/glshared/glsUniformBlockCase.cpp
index e766c52..6623215 100644
--- a/modules/glshared/glsUniformBlockCase.cpp
+++ b/modules/glshared/glsUniformBlockCase.cpp
@@ -33,10 +33,11 @@
 #include "tcuTestLog.hpp"
 #include "tcuSurface.hpp"
 #include "tcuRenderTarget.hpp"
-#include "deRandom.hpp"
-#include "deStringUtil.hpp"
+#include "deInt32.h"
 #include "deMemory.h"
+#include "deRandom.hpp"
 #include "deString.h"
+#include "deStringUtil.hpp"
 
 #include <algorithm>
 #include <map>
@@ -405,12 +406,6 @@
 	return de::max(baseStride, vec4Alignment); // Really? See rule 4.
 }
 
-static inline int deRoundUp32 (int a, int b)
-{
-	int d = a/b;
-	return d*b == a ? a : (d+1)*b;
-}
-
 int computeStd140BaseAlignment (const VarType& type)
 {
 	const int vec4Alignment = (int)sizeof(deUint32)*4;
diff --git a/scripts/log/log_parser.py b/scripts/log/log_parser.py
index 2b3eb7b..b77af3f 100644
--- a/scripts/log/log_parser.py
+++ b/scripts/log/log_parser.py
@@ -131,7 +131,8 @@
 		self.filename			= filename
 
 	def parseLine (self, line):
-		if len(line) > 0 and line[0] == '#':
+		text = line.decode('utf-8')
+		if len(text) > 0 and text[0] == '#':
 			return self.parseContainerLine(line)
 		elif self.curResultText != None:
 			self.curResultText += line
@@ -140,7 +141,8 @@
 
 	def parseContainerLine (self, line):
 		isTestCaseResult = False
-		args = splitContainerLine(line)
+		text = line.decode('utf-8')
+		args = splitContainerLine(text)
 		if args[0] == "#sessionInfo":
 			if len(args) < 3:
 				print(args)
@@ -152,7 +154,7 @@
 			if len(args) != 2 or self.curCaseName != None:
 				self.parseError("Invalid #beginTestCaseResult")
 			self.curCaseName	= args[1]
-			self.curResultText	= ""
+			self.curResultText	= b""
 		elif args[0] == "#endTestCaseResult":
 			if len(args) != 1 or self.curCaseName == None:
 				self.parseError("Invalid #endTestCaseResult")
diff --git a/scripts/src_util/check_whitespace.py b/scripts/src_util/check_whitespace.py
index b37c128..aca7379 100644
--- a/scripts/src_util/check_whitespace.py
+++ b/scripts/src_util/check_whitespace.py
@@ -28,7 +28,7 @@
     if (sys.version_info < (3, 0)):
         f = open(file, 'rt')
     else:
-        f = open(file, 'rt', encoding="ascii", errors='replace')
+        f = open(file, 'rt', encoding="ascii", errors='replace', newline='')
     error = False
     for lineNum, line in enumerate(f):
         if line.endswith(" \n") or line.endswith("\t\n"):
diff --git a/scripts/verify/verify.py b/scripts/verify/verify.py
index dff0f8f..b4ac832 100644
--- a/scripts/verify/verify.py
+++ b/scripts/verify/verify.py
@@ -38,7 +38,7 @@
 	])
 
 def readMustpass (filename):
-	f = open(filename, 'rb')
+	f = open(filename, 'rt')
 	cases = []
 	for line in f:
 		s = line.strip()
@@ -63,7 +63,7 @@
 		messages.append(error(filename, "Wrong number of test results, expected %d, found %d" % (len(mustpass), len(results))))
 
 	caseNameToResultNdx = {}
-	for ndx in xrange(len(results)):
+	for ndx in range(len(results)):
 		result = results[ndx]
 		if not result in caseNameToResultNdx:
 			caseNameToResultNdx[result.name] = ndx
@@ -71,7 +71,7 @@
 			messages.append(error(filename, "Multiple results for " + result.name))
 
 	# Verify that all results are present and valid
-	for ndx in xrange(len(mustpass)):
+	for ndx in range(len(mustpass)):
 		caseName = mustpass[ndx]
 
 		if caseName in caseNameToResultNdx: